Masintõlge, mida emakeelne kõneleja pole üle vaadanud. Võrdlusallikaks on ingliskeelne versioon.

ProjektMuuda GitHubisAllikas: CHANGELOG.md

Muudatuste logi

Kõik Kshana märkimisväärsed muudatused on dokumenteeritud siin.

Vorming põhineb dokumendil Keep a Changelog ja see projekt järgib Semantic Versioning-it. Kuni projekt on versioonist 1.0 eelses etapis, võib avalik stsenaariumi/tulemuse skeem veel muutuda; tagasiühildumatud muudatused tuuakse selgelt välja.

Avaldamata#

[0.40.0] - 2026-10-29#

0,40 lisab Artemis-klassi missiooniahela ja selle Kuu lõigu, tõendimärgise igale arvule ja tabelile, mille käivitus kirjutab, mõõdetud kella sisselugemise ja sobitamise, andmepartneri esituse kontrolli, ADS-B või AIS teadetest hinnangulise kiirgusallika piirkonna, 0,40 võrdlusaluse kordkampaania ning käsurea, aruanded ja Studio seitsmeteistkümnes keeles lisaks inglise keelele (masindokumendid jäävad inglise keelde). Kontrollimaatriks kasvab 388 reast 401 reani: 176 VALIDATED (muutumatu), 221 MODELLED (oli 208) ja 4 PARTNER. Ühtki rida ei edutatud VALIDATED-iks. Stsenaariumi liigid kasvavad 87-st 92-ni. Iga lävi, mille eelregistreeritud võrdlus täitmata jättis, on allpool öeldud ja jääb kinnitatuks; ühtegi ei lõdvendatud. Nõuande avaldus on muutumatu: Kshana on nõuandev tarkvara, mitte tüübikinnitust omav navigatsiooniseade ega sertifitseerimine; vastutus jääb operaatorile.

Teadaolevad piirangud#

  • Mitteingliskeelsed käivitused võtavad umbes kaks korda kauem, sest stsenaarium käivitatakse kaks korda (üks kord inglise keeles masinfailide jaoks, üks kord valitud keeles inimese jaoks).
  • Mõned Studio laused on kokku pandud fragmentidest ja neis võivad puududa artiklid keeltes, millel on grammatiline sugu.
  • Tõlked on masintõlked, mida ükski emakeelne kõneleja pole üle vaadanud; võrdlusallikaks on ingliskeelne versioon.

Lisatud#

  • Seitseteist keelt lisaks inglise keelele mootori inimesele mõeldud tekstile ning saidile ja Studiole: nl, pl, pt-BR, pt-PT, fi, sv, da, nb, cs, uk, ru, de, fr, es, et, ja, zh-Hans (--lang, KSHANA_LANG, lokaadimuutujad; lang teegi, Pythoni, WebAssembly ja MCP kutsetel). Käsurea teated ja vead, käivituse kokkuvõtted, diagrammi tekst, report.html, liikide kirjeldused ja nõuanded on tõlgitud; masindokumendid (JSON, CSV, veakoodid, kontrollimaatriks) jäävad inglise keelde ning mitteingliskeelne käivitus täidab stsenaariumi ühe korra inglise keeles masinfailide jaoks ja ühe korra valitud keeles inimese jaoks (docs/i18n.md). Tõlked on masintõlked, mida emakeelsed kõnelejad pole üle vaadanud; võrdlusallikaks on ingliskeelne versioon; iga keele REVIEW.md loetleb, mida ülevaataja peaks kõigepealt kontrollima, ja saidilehtedel on sellekohane teade. Otsusesõnad, tõendustasemed ja nõuande ulatus („mitte tüübikinnitust omav“, „mitte sertifitseerimine“, „vastutus jääb operaatorile“) on säilitatud igas keeles.
  • kshana interference-map locate: hinnanguline kiirgusallika piirkond ADS-B või AIS teadetest. Posterioor selle kohta, kus võib asuda halvenenud positsiooniteadete allikas (raadionähtavus 4/3 Maa raadiusel, kiirgusallika antenni kõrgus ja võimsus marginaliseeritud, mõjutatud õhusõidukid tõmbavad ja mõjutamata nähtavusega õhusõidukid suruvad vastu), kirjutatud piirkondadena 50, 90 ja 95%, tsentroidina koos selle määramatuse ellipsiga (mitte kunagi paljas punkt), sessioonidena ajas (algus, lõpp, kestus, mõjutatud ala, eristatavad õhusõidukid üle avaldamise miinimumi), ööpäevaprofiili ja tundidena päevas, valikulise TDOA fikseeringu liitmisega failist geolocation. Väljundid: GeoJSON, JSON-kokkuvõte, sessioonide CSV ja SVG-joonis, igaüks kannab litsentsi, viidet autorile, meetodi id-d, eeldusi, piiranguid ja oma tõendimärgist. Teek interference_map::api::emitter_regions_from_*, Python ja WebAssembly interference_emitter_regions. MODELLED (registririda VM-bc70cb57; maatriksis on nüüd 401 rida, 176 VALIDATED, 221 MODELLED, 4 PARTNER); kalibreeritud ainult sünteetilistel andmetel, kusjuures võrdlus Jammertest 2025 saatjakohtadega eelregistreeriti ja käivitati üks kord: ADS-B ja AIS mõlemad NOT ASSESSABLE (avatud andmetes liiga vähe planeeritud sessioone), seega rida jääb MODELLED (docs/emitter-region/RESULTS.md). Neutraalne sõnastus, ainult koond; kiirgusallika piirkondade avaldamine avalikus observatooriumis jääb välja lülitatuks. Sünteetiline näide on kaustas examples/emitter-region/ (docs/INTERFERENCE-MAP.md).
  • Mõõdetud kellalogid. src/clock_log.rs loeb mõõdetud kellalogi üheks faasireaks: kaheksa vormingut (RINEX clock, TimeLab, TICC, linuxptp ptp4l, phc2sys ja ts2phc, chrony tracking ja statistics), igaüks dokumenteeritud alamhulk; kõik sellest väljaspool lükatakse tagasi veaga, mis nimetab leitu. Seda kasutavad telecom-timing ([series.clock_log]) ja kella liik ([clock_log], mis lisab measured ploki logi SHA-256 ning kattuva ADEV, TDEV ja MTIE-ga), koos kaasasoleva stsenaariumiga clock-measured-log (docs/CLOCK-LOG-FORMATS.md). Võrreldud allantoolsiga päris avalikel andmetel eelregistreeritud lävede vastu: esimene käivitus jättis täitmata B1 (5 juhtu 11-st, kõik TICC ajatemplid hoitud kui f64), B2, B3 (7 juhtu 24-st) ja B4 (päise versiooni ei kontrollitud); pärast parandusi on B1, B3 ja B4 täidetud ning B2 on täidetud peale ühe MTIE paari, mis on kinnistatud ja ei ole mootori viga (allantools 2024,6 eemaldab keskmise sageduse enne integreerimist; selle faasirežiimi MTIE vastu on mootor kooskõlas täpsusega 1e-10). Rida jääb MODELLED (tests/fixtures/clock_log_real/RESULTS.md).
  • Sobitatud mõõdetud reaga käitatud holdover: kella liigi [clock_fit] sobitab mõõdetud rea müra ja käitab selle põhjal holdoveri (src/clock_fit.rs, kaasasolev stsenaarium clock-fitted-log). Eelregistreeritud võrdlus: F1(b), F3 ja F4 täidetud; F1(a) (registreeritud juhusliku käiguga FM taastamine) NOT MET C3 kirjetel (konstruktsiooni poolest tuvastamatu) ja kahel kolmest C4 kirjest (juhusliku käiguga FM neeldus flicker FM-i ja triivi); F2 (müra tuvastamine allantoolsi vastu) täidetud üheteistkümnel kaheteistkümnest kirjest ja D3 puhul ning NOT MET D2 puhul nii nagu registreeritud (võrreldes samaväärselt täidetud). Kõik möödalasked on kinnistatud (tests/clock_fit_known_noise.rs); plokk fitted ja selle käitatud holdover jäävad MODELLED (tests/fixtures/clock_fit/RESULTS.md).
  • 0,40 võrdlusaluse kordkampaania, eelregistreeritud omaniku kinnitusega enne ühtki käivitust: A3 (EXPLORATORY, kaustapõhise alglaadimisega AUC faili agc_k_sigma jaoks, 2,5 % kvantiil 0,8502 võrreldes 0,80), D3 (EXPLORATORY, kolm viiest detektorist ületavad optimismilõhe 0,05 skaalal 0,25), R3 (AUC 1,0) ja R4 (P_fa 0,0, P_d 1,0): kõik MET, kõik MODELLED. A2, D1 ja R1 on puutumata ja jäävad NOT MET; siin ei sulge neid miski (xval/bench/RESULTS-0.40.md, Bench).
  • kshana partner check <submission.toml>: kontrollib andmepartneri esituse vormingut ja metaandmeid (kshana.partner-submission/1: seade, andmefail ja SHA-256, kuidas see võeti, millised MODELLED read sellega esitatakse, litsents, avaldused) ning loeb andmeid mootori enda kellalogi või IMU lugejatega. See ei hinda midagi ega valideeri midagi. Sünteetiline näide on kaustas examples/partner-submission/.
  • docs/PARTNER-DATA.md: milliseid MODELLED registrireid mõõdetud andmed võiksid edutada, millised vormingud on vastuvõetavad, kuidas esitust kontrollitakse, eelregistreeritud läve vastu hinnatakse ja arvesse võetakse ning mida tähendavad PARTNER ja VALIDATED; omaniku jaoks kontaktimärkme mustand failis docs/drafts/PARTNER-OUTREACH.md (midagi ei saadeta).
  • Teised kampaaniad liikide gnss-ssv ja lunar-infrastructure täitmata lävede jaoks, käivitatud nii nagu eelregistreeritud (xval/gnss-ssv/PREREGISTRATION-v2.md, xval/lunar-infra/PREREGISTRATION-v2.md; kinnitatud enne ühtki käivitust). Iga algne möödalase jääb NOT MET ja kinnistatuks. gnss-ssv: kontroll taastab käivituse 1 lahtri lahtri haaval; viis ühe lugemisega ablatsiooni toovad 2 78-st täitmata lahtrist tolerantsi sisse (EXPLORATORY, läve pole); uus lävi S7b (Classic IIR paneelidele sobitatud langus-ja-põranda saatevorm) on NOT MET IIR-M paneelidel tulemusega 3,83 kuni 3,95 dB võrreldes 3 dB; hoitud avaldatud vastuvõtu kampaaniat ei käivitatud (allikat pole kinnitatud) (xval/gnss-ssv/RESULTS-v2.md). lunar-infrastructure: uued läved C3a, C3b (avastuspiir umbes 3e-9 m/s2), Q3a, Q3b (täpne normaaljaotuse CDF eemaldab 1.7e-6 erinevuse) ja G3'' on täidetud omaette lävedena ning G3' illustratiivsete priooritega on täidetud ja märgitud EXPLORATORY (xval/lunar-infra/RESULTS-v2.md). Kõik jääb MODELLED. Uued avalikud elemendid: kshana::lambda::{erfc_accurate, normal_cdf_accurate, bootstrap_success_rate_accurate}.
  • Tõendimärgis igal arvul ja tabelil, mille käivitus kirjutab. Tulemuse JSON-il on võti evidence, diagrammi SVG-l metaandmete element ja joon joonise all ning CSV-tabelil # evidence: kommentaarirea: tase (VALIDATED, MODELLED või PARTNER, ridadest nõrgim) ja nende kontrollimaatriksi ridade id-d, millele käivitus toetub. Read ja staatused on loetud maatriksist, mitte käsitsi kirjutatud; id-d on stabiilsed (VM- ja kaheksa kuueteistkümnendnumbrit, uus ID veerg failis docs/VERIFICATION-MATRIX.md, külmutatud loend failis tests/fixtures/evidence_ids.txt). Ka receiver-trust, jammertest score, iq acquire/sweep/track/monitor, marsruudi ekspositsiooniaruandes ning allkirjastatud config.json sees igas tõendipaketis (config_version 1,1; kshana evidence verify teatab taseme; enne 0,40 tehtud paketid kontrollitakse muutumatuna). tests/evidence_labels_doc_sync.rs ebaõnnestub, kui joonisel pole silti, silt on maatriksiga vastuolus või uus failikirjutaja pole ei märgitud ega põhjusega loetletud. Väljundid, mis ei kanna ühtegi, on loetletud failis docs/SURFACES.md. Kolm README demodiagrammi renderdati uuesti sildiga (selle eemaldamine taastab vanad baidid; docs/revisions/STUDIO15-evidence-label-0.40.md). Ühtki väidet ei muudetud.
  • Stsenaariumi liik mission-thread (scenarios/mission-thread-artemis-class.toml, docs/MISSION-THREAD.md): faaside ahela navigatsiooni- ja ajastusvea eelarve startimisest sisenemiseni, iga arv MODELLED ja iga sisend öeldud. Kaheksa faasiliiki: launch-ascent, leo-rendezvous (Clohessy-Wiltshire'i suhteline kovariatsioon anduriosade kaupa, dokkimisaken), tli-and-cruise (Cowelli levitamine lõplike diferentsidega olekusiirdemaatriksiga, põlemisviga, gnss-ssv ja maajälgimise uuendused, Kuu valikulisest DE440 kerneli lõigust), entry (lennutrajektoori nurga sigma, koridoritõenäosus, tipp-aeglustus koridoriservades, maandumisjalajälg) ja neli Kuu liiki. Üleandmisreeglid (carry, inflate, reacquire), tugisüsteemi ja ajaskaala teisendused omaette eelarveridadena, valikuline maajaamade võrgu pealis, mis määrab iga faasi jälgimise töötsükli, varu öeldud nõuete suhtes ja nõrgim lüli. Näide järgib avaliku NASA missioonikontseptsiooni slaidikomplekti järjestust ILLUSTRATIVE arvudega: Artemis-klassi läbiv näide 11 faasi kohta, Maa ja Kuu lõigud. Tsislunaarset levitamist võrreldi avaliku Artemis I trajektooriga 72 h kaarel lävega, mis oli enne käivitust kinnitatud failis xval/mission-thread/PREREGISTRATION.md: NOT MET (45,3 km ja 0,25 m/s võrreldes 5 km ja 0,05 m/s). Diagnostika paigutab möödalaske viide väikesesse impulsiivsesse sündmusse etalonis; nende vahel taastab jõumudel tunnioleku mediaanil 0,4 m. Rida jääb MODELLED (xval/mission-thread/RESULTS.md).
  • Artemis-klassi missiooniahela Kuu lõik: neli stsenaariumi liiki, millest igaüks on ka liidese mission-thread faasiliik (src/mission_thread/lunar/), kõik MODELLED.
    • lunar-orbit-rendezvous: suhteline navigatsioon dokkimiseni 100 km ringikujulisel polaarorbiidil või 100 km korda 3000 km elliptilisel polaarorbiidil (scenarios/lunar-orbit-rendezvous.toml, ...-elfo.toml). Partii Gauss-Newtoni hinnang kaarel ühendab sõiduki kohta ühe absoluutse fikseeringu illustratiivsest LCNS-klassi releekomplektist, püsiva signaali kosmoses vea (mõlemale sõidukile ühine ja sõltumatu) ja ristlingi kauguse teegi Kuu jõumudeli all. See esitab suhtelise asendi ja kiiruse sihtmärgi kohalikes telgedes, fikseeringu kättesaadavuse, keskmise normaliseeritud hindamisvea ruudu selle oodatava väärtuse suhtes, gravitatsioonilise harmoonika ignoreerimise hinna, lõplikud suhtelise anduri mudelid ainult signaalide arvu kõrval ning edasi antud 6x6 kovariatsiooni.
    • lunar-descent: maandumishajuvuse eelarve lõunapolaarsel alal (scenarios/lunar-descent.toml; lunar-descent-lola.toml loeb LOLA DEM-i väljavõtmisest): viieolekuline telgede kaupa inertsiaalne veamudel, AFS fikseering (eraldiseisev või diferentsiaalne, kasutades liigi lunar-differential-pnt korrektsioonilingi jääki), maastikusuhteline fikseering (sobitaja terrain-nav oma sünteetilisel reljeefil või LOLA DEM-i sobitamise Cramer-Rao tõke) ja Kuu aeg läbi sõiduki kella (lunar-time-offset). See esitab 3-sigma maandumisellipsi, iga abivahendite kombinatsiooni ja ellipsi Monte Carlo kalibreeringu.
    • lunar-surface: positsioneerimise ja ajastuse kättesaadavus asukoha ja aastaaja järgi (scenarios/lunar-surface.toml; lunar-surface-terrain.toml lisab kiirtega pühitud LOLA horisondi): ühe asukoha positsioneerimisnäitaja võrdub liigi moonlight-service-volume omaga bitipealt; Maa ja Päikese nähtavus analüütilistest efemeriididest on see, mis aastaajaga muutub.
    • lunar-ascent: tõus kohtumisorbiidile ja orbiidile tagasi kantud asendi ja kiiruse kovariatsioon (scenarios/lunar-ascent.toml), mille kõrval on esitatud mootori väljalülituse hajuvus.
    • docs/MISSION-THREAD-LUNAR.md; eelregistreering, selle muudatused ja kõik tulemused, möödalasked kaasa arvatud, kaustas xval/mission-thread-lunar/.

Tõendid#

  • Eelregistreeritud failis xval/mission-thread-lunar/PREREGISTRATION.md enne ühtki käivitust, kuue kuupäevastatud muudatusega (iga tehtud enne andmete toomist, välja arvatud muudatus 6, mis parandab oleku loenduse aritmeetikaviga pärast toomist ja enne ühtki A2 tulemust; iga muudatus on failis avalikustatud). Ühtegi läve ei lõdvendatud.
  • A1 (levitaja LRO rekonstrueeritud trajektoori vastu JPL Horizonsist, 24 h): MET, maksimaalne 3D-erinevus 33 m võrreldes lävega 500 m ja RMS radiaalne erinevus 2,4 m võrreldes 60 m.
  • A2 (sama levitaja CAPSTONE'i NRHO vastu ühe 6.5-päevase tiiru jooksul): NOT MET, lõppasendi erinevus 136,8 km võrreldes lävega 25 km ja oskuleeriva periapsisraadiuse erinevus 28,4 km võrreldes 10 km. Rida jääb MODELLED ja möödalaske kinnistab tests/mission_thread_lunar_oracles.rs.
  • B1 (kohtumishinnangu kooskõla oma mudeliga) on MET neljanda hindajakujunduse puhul, keskmine NEES 5,85 kuni 5,93 vahemikus [5,2, 6,8]; kolm varasemat kujundust, laiendatud Kalmani filter kolmes variandis, jäid sellest mööda. Viies muudatus, mis tehti pärast seda, kui kaasasoleva 2 h stsenaariumi puhul leiti, et 4 50-st katsest läheb lokaalsesse miinimumi (keskmine NEES 1e9), käivitab Gauss-Newtoni sobitamise kasvaval kaarel sammu poolitamisega; B1 jääb sellest puutumata ja kaasasolevad stsenaariumid annavad 6,51 ja 6,33. Ajalugu on failis xval/mission-thread-lunar/RESULTS.md.
  • Siin pole midagi VALIDATED: oraaklirid testivad jagatud levitajat, mitte navigatsioonifiltrit, signaali ega eelarvet.

[0.39.0] - 2026-10-22#

Uusi funktsioone pole: üks käsurea parandus, sõltuvuste uuendused ristvalideerimise tööriistades ja dokumentatsioon. Mootori tulemused on versiooniga 0.38.0 võrreldes muutumatud.

Parandatud#

  • Käsurea väljub vaikselt olekuga 141, kui selle standardväljund sulgub (kshana kinds | head), selle asemel et kukkuda veateatega „failed printing to stdout: Broken pipe“. 141 on 128 pluss SIGPIPE, olek, mida shell teatab käsu yes | head korral. Käsitletakse ainult suletud toru: täis ketas või mis tahes muu kirjutusviga teatab endiselt endast ja suletud pesasse kirjutav elav voog saab endiselt oma kirjutusvea. tests/cli_closed_pipe.rs sulgeb lugeja enne programmi käivitamist, nii et esimene kirjutamine ebaõnnestub igal käitusel.

Turvalisus#

Üks sõltuvusuuendus tarnitud teegis (esimene kirje), ülejäänud ristvalideerimise tööriistades (xval/).

  • p256, p384 ja p521 versioonilt 0,13 versioonile 0,14 (koos elliptic-curve 0.14.3, ecdsa 0.17.0 ja crypto-bigint versioonilt 0.5.5 versioonile 0.7.10; samuti otsene crypto-bigint sõltuvus, nüüd 0,7) kõrvaldavad nõuande RUSTSEC-2026-0387 (ajastuse varieeruvus teegis crypto-bigint 0.5.5). Kshana kasutab neid teeke ainult avalike allkirjade kontrollimiseks (Galileo OSNMA juurvõti ja RFC 3161 ajatemplitõendid) ning allkirjastab ainult testides ühekordsete võtmetega, nii et praktiline ekspositsioon oli olematu; uuendus eemaldab nõuande ilma eira-kirjeta. Teegi ja MCP lukufailid liiguvad mõlemad; ükski kontrollitulemus ei muutu (OSNMA ja ajatempli vektoritestid läbivad muutmata kujul).
  • Minimaalne toetatud Rusti versioon on nüüd 1,88 (nõutud RUSTSEC-2026-0387 parandusega).
  • memmap2 0.9.10 versioonile 0.9.11 (RUSTSEC-2026-0186) ANISE ristkontrolli lukkudes (xval/anise-lunar-od, xval/anise-mars-od); lukud sünkroniseerivad uuesti ka hoidlasisese kshana tee sõltuvuse.
  • pillow 12.3.0 versioonile 13.0.0 ning certifi 2026.7.22 versioonile 2026.10.19 sõltumatu etaloni keskkonna fikseeringutes (xval/oracles/requirements.lock, requirements.frozen.txt): parandatud väljaanded kaheksa pillow nõuande ja ühe certifi nõuande jaoks.

Dokumentatsioon#

  • docs/BENCH.md, README ja see fail loetlevad iga kshana-bench läve, mis on NOT MET, nagu on kirjas dokumendis xval/bench/RESULTS-v2.md: A2 (agc_k_sigma AUC 0,766 võrreldes vähemalt 0,80-ga testjaotusel), D1 (suurim vahe 0,0301) ja ülesande (b) R1 (üle võetud, mitte uuesti käitatud). Ühtki lävendit ei lõdvendata.
  • README täielikkuse läbivaatus: sisukord; perekondade alla paigutatud stsenaariumi liigid, igaühel leht asukohas docs/kinds/by-kind/ (mootori kirjeldus ja väljad, näidiskäituse sisendid ja tulemused, registrireadid ja sõltumatud etalonid, käituse aruande esitatud piirangud ning mootori kirjutatud diagramm), perekonna kohta üks kontaktleht, kõik indekseeritud failis docs/KINDS.md; iga käsk failis docs/COMMANDS.md; iga pind, pistikprogrammi käsk, oskus ja Studio leht failis docs/ALL-SURFACES.md; iga võimekuse valdkond failis docs/CAPABILITY-DOMAINS.md; lisatud Mermaidi diagrammid (süsteemi ülevaade, pinnad, sisemine tsükkel, vastuvõtja usaldus, labori edasi-tagasi tsükkel, Studio, testi- ja väljalaskevoog, moodulikaart, levitamine). Kirjutanud tools/gen_kinds_index.py, tools/gen_readme_blocks.py ja tools/gen_figures_038.py; auditeerinud tools/readme_audit.py; valvab tests/readme_completeness_doc_sync.rs, mis kinnitab ka iga kirje kirjelduse ja väljad mootori külge.
  • tools/render-diagram-chromium.sh: renderdab Mermaidi diagrammi SVG-ks ja PNG-ks Linuxil ning uuendab renderduskirjet.
  • README: kosmosekasutaja ja Kuu joonised kasutasid teid, mis olid suhtelised asukoha docs/ suhtes, seega need ei laadinud README-st; üks link osutas asukohale ../../docs/JAMMERTEST.md.
  • Eemaldati kaks aegunud käsitsi kopeeritud diagrammifaili (docs/assets/clock-ensemble-band.svg, sweep-clock-stability.svg), mida ükski leht ei kasutanud ja mis ei vastanud enam mootorile; docs/KINDS.md kannab praeguseid diagramme.

[0.38.0] - 2026-10-19#

Lisatud#

  • GNSS väljaspool konstellatsiooni (gnss-ssv). Uus stsenaariumi liik kosmoseaparaatidele GNSS-i orbiitide kohal, ümber ja taga (docs/SSV.md): ühe ja nelja signaali kättesaadavus, katkestuste kestused, C/N0, DOP ning peamaksimumi ja külgmaksimumi lülid GPS-i, GLONASS-i, Galileo, BDS-i, QZSS-i ja NavIC-i jaoks kihil või piki LEO, MEO, GEO, HEO ja Kuule suunduvaid trajektoore; brošüüri-, parameetrilised või kasutaja antud saatemustrid; limbikiire ionosfääri, plasmasfääri ja atmosfääri mudel; nõrga signaali vastuvõtja projekt; pardal olev GNSS-i laiendatud Kalmani filter HEO ja Kuule suunduva trajektoori jaoks; ning moodustise suhteline navigatsioon. Võrreldud ICG kosmoseteenuse mahu brošüüriga enne käitust tehtud eelregistreeringu alusel: minimaalse kiirgusvõimsuse konstandid ja Kuu lävi nõustuvad, teised läved ei ole eelregistreeritud lugemise järgi täidetud (peaaegu kõik brošüüri ebajärjekindla GLONASS-i kiirenurga tõttu) ja parameetriline külgmaksimumi asendaja ei reprodutseeri mõõdetud GPS-i paneelimustreid. Kõik jääb MODELLED (xval/gnss-ssv/RESULTS.md).
  • Kuu orbiit ja pind navigatsiooni- ja geodeesiataristuna (lunar-infrastructure). Uus stsenaariumi liik viie uuringuga, mida valib study (docs/LUNAR-INFRASTRUCTURE.md): pardal oleva Maa-GNSS orbiidi määramise kooskõla peaaegu sirgjoonelises halo-orbiidis sõltumatu maapealse kauguse ja kauguskiiruse määramisega; ühine pinnajaama ja orbiidi kahekordselt diferentseeritud kandelaine faas LAMBDA täisarvulise fikseerimisega; seitsmeparameetrilise Kuu datumi Fisheri informatsioon orbiidi ja pinna vaheliste kaugusmõõtmistega ja ilma; GNSS-i, VLBI ja laservahemõõtmise tehnikatevahelised nihked kohaliku sidemega võrreldes; ning tundlikkus h2, k2, l2 ja füüsilise libratsiooni suhtes. MODELLED, ILLUSTRATIVE sisenditega: numbrilisi tulemusi kontrollitakse sõltumatute numpy ja scipy programmidega ning midagi ei võrrelda Kuu suuruse mõõtmisega. Läved fikseeriti dokumendis xval/lunar-infra/PREREGISTRATION.md ja kahes avalikustatud muudatuses. Kolm on NOT MET ja igaüht kinnitab test, mis väidab möödalasku: C3 (süstitud jõuviga ei tuvastata eelregistreeritud sagedusega), Q3 (alglaaditud edukuse määr erineb numpy sõltumatust etalonist 1.7e-6 võrra lävi 1e-9 vastu, LAMBDA normaaljaotuse jaotusfunktsiooni lähenduse tõttu) ja G3 jälje pool (kaugusmõõtmisperekonna lisamine ei vähenda alati pseudopöördmaatriksi jälge). Ülejäänud on täidetud (xval/lunar-infra/RESULTS.md).
  • Kuues artikkel tabelis Research. „Cislunar navigation is an observability problem: arc-length thresholds, Gramian conditioning, and the Doppler lever“ (arXiv:2610,23871, eess.SP) näitab, et DOP on ainult kaugusmõõtmisel põhineva tsislunaarse jälgimise jaoks määramata, ning kasutab selle asemel vaatlusgramiaani neljal tasapinnalisel kaugel retrograadsel orbiidil: ainult kaugusmõõtmise korral on astak 2 4-st hetktõmmisel ja see vajab umbes 2,09 h kaart, kauguskiirus (Doppler) annab astaku 4 kohe ning jaama kaasestimeerimine satelliidi olekute ja kelladega jääb ilma väliselt interferomeetrilise vaatlussuuruseta ühe võrra astaku puudulikuks. Selle arvud genereeritakse uuesti liigiga cislunar-observability (kshana scenarios/cislunar-observability.toml); cislunar-arc-recovery katsetab läve sõltumatu hinnangualgoritmiga. README uurimiskaart, crates-, npm- ja PyPI README-d ning generaator kannavad seda.
  • Neutraalne kohtunik, muudetud mõõdetavaks. kshana jammertest import loeb avaldatud NPRA Jammertesti kataloogi ja edastuskava ajastatud tõena (kataloogi id-d säilitatud) ning kshana jammertest score hindab vastuvõtja logi selle suhtes iga katse kohta (tuvastusviide, tuvastamata jäänud häired, valehäired, taastumisaeg), soovi korral allkirjastatud tõendipaketina (docs/JAMMERTEST.md). Hindamislävid eelregistreeriti enne mis tahes hinnatud käitust (xval/jammertest-score/). JammerTest 2024 andmekogumil (toodud, mitte koodibaasi kopeeritud) ebaõnnestus eelregistreeritud minimaalse andmehulga reegel nii esimeses käituses kui ka andmetöötluse redaktsioonis, mistõttu ühtki lävendit ei saa hinnata ja midagi ei väideta; mõlemad käitused on registreeritud ja kindlaks määratud. MODELLED: ajakava on andmekogumi logitud aknad, mitte salvestatud eetriajad. 2025 SimulaMet NMEA komplekti ei kohandata (selle lehel litsentsi ei märgita).
  • Vastuvõtja enda lipud Kshana omade kõrval. UBX-NAV-STATUS spoofDetState ja UBX-SEC-SIG loetakse igal epohhil väljale self_report ning tulemuse võrdlus receiver_self_report asetab need Kshana monitoride vastu (mõlemad, ainult vastuvõtja, ainult Kshana, ei kumbki); see ei tõsta alarmi ja ei muuda skoori. Septentrio SBF lugeja (PVTGeodetic, MeasEpoch, RFStatus, ainult lugemine, MIT-litsentsiga krati sbf-tools peal) ja receiver-trust live --serial (jada- või USB NMEA voog, ainult lugemine; see ei kirjuta kunagi vastuvõtjasse) liituvad nendega.
  • Ajastus ja riistvaraohutus (docs/TIMING-HIL.md, docs/HARDWARE-SAFETY.md). Stsenaariumi liik holdover-test hindab ajastussüsteemi holdover-testi (operaatori poolt eemaldatud GNSS, holdover, taastumine) mõõdetud ajavea kirje põhjal, mõõdetuna avalike tabelite ITU-T maskide suhtes. clock_log loeb linuxptp (ptp4l, phc2sys, ts2phc) ja chrony (tracking, statistics) logisid. iq scene --format sdrx kirjutab ION GNSS SDR metaandmeid ja iq monitor --follow jälgib SigMF salvestust, kuni see kasvab (ainult vastuvõtt). compliance-report saab NIST IR 8323r1 Foundational PNT Profile’i (15 parafraseeritud rida, toetab tõendeid (supports evidence for)). Tõendipakett võib salvestada operaatori lab-attestation oma allkirjastatud manifesti, mida ei kontrollita kunagi; riistvaraetapid 0 kuni 4 ja juriidilised märkused on failis HARDWARE-SAFETY.md (ootab juriidilist läbivaatust). Mingit sorti edastusteed ei ole.
  • kshana-bench v1 (kshana bench, bench/SPEC.md, docs/BENCH.md): fikseeritud ülesanded, jaotused ja mõõdikud GNSS-häirete tuvastamiseks vastuvõtja logidel (JammerTest 2024) ja IQ-l, ajastuse holdover-i ennustamiseks (IGS kellad) ning jaotusest väljas oleva optimismivahe jaoks; jaotuste manifestid kindlaksmääratud räsidega ja toomisskriptid (andmeid ei kopeerita koodibaasi), suletud holdout kommiti ja avalikustamise kaudu, tulemusfaili skeem ja staatiline edetabelileht. Lähtetasemed lävede all, mis on eelregistreeritud failis xval/bench/PREREGISTRATION.md: hindaja läved täidetud, C1 kuni C3 täidetud, D2 täidetud; A2 NOT MET (agc_k_sigma AUC 0,766 võrreldes vähemalt 0,80-ga testjaotusel), D1 NOT MET (suurim vahe 0,0301) ja ülesande (b) R1 NOT MET (üle võetud, mitte uuesti käitatud), igaüks kindlaks määratud (xval/bench/RESULTS-v2.md). Iga skoor on MODELLED. Python bench_score, bench_leaderboard; WebAssembly samamoodi; MCP score_benchmark, render_leaderboard.
  • Häirete vaatluskeskus (kshana interference-map daily, sensitivity, docs/observatory/METHOD.md): reprodutseeritav ööpäevane GeoJSON, PNG ja intsidendiaruande JSON kolme olekuga (halvenenud, mitte halvenenud, vaatlemata), minimaalne viivitus 24 h, lahtrid 0,5 kraadi või jämedamad, põhjust ei omistata ja OpenSky andmed lükatakse tagasi; eelregistreeritud parameetrite tundlikkusuuring; 30-päevane Läänemere tagantjärele kataloog adsb.lol-ist.
  • Masina- ja andurisisendid liigile receiver-trust (docs/MACHINE-INPUTS.md). Uued [log] format väärtused, kõik ainult lugemiseks, MODELLED, ise kirjutatud fikstuuridega ja ilma andmeid koodibaasi kopeerimata: rtklib-pos (RTKLIB .pos lahendifailid), novatel (OEM7 ASCII- ja binaar-BESTPOS, RANGE C/No ja RXSTATUS; vastuvõtja segaja lipust saab epohhi self_report, mida võrdlus receiver-self-report asetab Kshana alarmide vastu), rtcm3 (MSM4 ja MSM7 C/N0 GPS-i, GLONASS-i, Galileo, SBAS-i, QZSS-i, BeiDou ja NavIC-i jaoks; paigutused BSD-litsentsiga pyrtcm tabelitest, mille teade on failis NOTICE, mitte RTCM standardist) ja gnss-sdr (GNSS-SDR Monitori ja PVT-monitori sõnumid JSON-ridadena, edastatud skriptiga integrations/gnss-sdr/relay.py).
  • IMU logid teise andurina. [log.imu] (csv või euroc) integreerib güroskoobi pöörlemiskiiruse suunaks, mida monitor heading-course loeb; sisseehitatult igal pinnal ja kantud tõendipakettide kaudu. kshana imu-fit (Python imu_fit, WebAssembly imu_fit, MCP fit_imu_log, pistikprogramm /kshana-fit-imu, JetBrains toiming) sobitab stsenaariumide hybrid ja fusion kiirendusmõõturi ja güroskoobi parameetrid paigalseisu logist Alani hälbe abil ning trükib tabeli [accel_classical] logi SHA-256-ga selle päritoluandmetes.
  • Integratsioonid: ROS 2 pakett (integrations/ros2/kshana_trust: NavSatFix ja ublox_ubx_msgs sisse, usaldusteemad välja; selle ROS-ita sild on testitud päris mootori vastu, sõlme ennast ei ole elaval ROS-i graafil käitatud), gnss_lib_py sild (integrations/gnss_lib_py, MIT sõltuvus, valikuline) ja GNSS-SDR relee.
  • Home Assistant MQTT eksportija usaldustelemeetria jaoks: kshana trust-telemetry --print-mqtt ja --mqtt-tcp <host:port> (avastussõnumid ja JSON olekudokument; ainult avaldamine, ilma volituste ja TLS-ita) ning format = "mqtt" tekstina Pythonis, WebAssembly-s ja MCP-s.
  • Seitse MODELLED registririda ülaltoodu jaoks. Midagi siin ei ole VALIDATED: ühtki päris vastuvõtja, baasjaama, IMU, GNSS-SDR käituse, ROS-i graafi ega MQTT vahendaja salvestust ei loetud.
  • Optilise lüli varu ajas. Liik optical-atmosphere võtab valikulise tabeli [timeseries] (duration_h, step_s, seed) ja kirjutab siis ka jaama kohta ühe algväärtustatud realisatsiooni fikseeritud jaamamudelist ajas: pilveepisoodid, episoodi kohta vedela vee sammas, sammu kohta üks gamma-gamma sintillatsiooni valim ning nendest lüli varu, pilve- ja sintillatsioonisummutused ja lüli töötamise lipp, koos realiseerunud kättesaadavuse, pilvisuse osakaalu, katkestuste arvu ja pikima katkestusega. MODELLED (üks tõmme mudelist, mitte kliima; väline sõltumatu etalon puudub). Ilma tabelita on tulemus dokument 0,37. Kaks kaasasolevat optilist stsenaariumi kannavad tabelit (336 h, 600 s, algväärtus 37). Läved eelregistreeritud failis xval/optical-atmosphere/PREREGISTRATION-timeseries.md enne esimest käitust.
  • Katsetingimuste spetsifikatsioon ja laboratoorne edasi-tagasi tsükkel. kshana.test-conditions/1 avaldatakse kui docs/spec/TEST-CONDITIONS.md koos JSON-skeemiga ja see saab väärtuse recording.kind = "receiver-log". kshana bench-export kirjutab ka <base>.conditions.json. kshana evidence round-trip ehitab allkirjastatud paketi, mis seob stsenaariumi räsi, fikseeritud tingimuste räsi, vastuvõtja logi räsi ja skoori fikseeritud sündmuste suhtes, ning keeldub tingimustest, mis ei lähe kokku hindamissündmustega. Läbitöötatud näide, kus gps-sdr-sim kirjutab ainult faili; taasesitus on operaatori vastutus ja seda ei automatiseerita kunagi. Python evidence_round_trip, MCP create_round_trip_pack, pistikprogramm /kshana-evidence-pack.
  • Standardipaketid (kshana standards-pack, standards/): DHS Resilient PNT raamistiku katseprofiilid tasemetele 1 kuni 4, IMO MSC.1/Circ.1575 täpsustasemed ja terviklikkuse hindamine ning ICAO Doc 9849 lisa F jälgimine, hindamine ja leevendamine, igaüks stsenaariumide komplekt, mida hinnatakse enne käitust fikseeritud lävede suhtes, koos compliance-report ridadega, mille kasuks need toetavad tõendeid (supports evidence for). Möödalasud on kirjas ja kindlaks määratud: DHS L4-T1 ja neli IMO täpsustesti. Doc 9849 ennast ei loetud (tasuline); ICAO pakett järgib ICAO enda RFI Mitigation Plan esitlust. compliance-report saab standardipakettide jaotise. Kõik MODELLED.
  • LunaNet Augmented Forward Signal (docs/LUNANET-AFS.md): AFS-I Goldi ja AFS-Q Weili koodid PRN-idele 1 kuni 210, signaalid lunanet-afs-i ja lunanet-afs-q käsus kshana iq, SB1 BCH kood, CRC-24Q ja põimur ning kshana lunanet-afs-check (spec, symbols, generate), kindlaks määratud LNIS V5 Applicable Document 1 Volume A-ga (LSIS-AFS V1.0, 29. jaanuar 2025). Koodid VALIDATED dokumendi trükitud tabelite suhtes (mida see märgib TBC); üks trükitud kolmanda koodi veerg (PRN 147) on tõenäoliselt trükiviga ja möödalask on kindlaks määratud. Alamkaadrite 2 kuni 4 LDPC kodeerimist ei ole teostatud.
  • Kursuse märkmikud (notebooks/course/): jamming, spuufimine, holdover, terviklikkus, OSNMA ja häirekaart, igaüks harjutustega.
  • EU-US WG-C ARAIM Milestone 3 maksimaalse URA uuring (xval/araim-m3/, src/bin/gen_araim_m3_study.rs), mis asendab tagasivõetud „Table A-3“ kava; MODELLED fikseeritud kõrvalekalletega.
  • Omaniku kinnitamiseks mõeldud mustandid asukohas docs/drafts/: JOSS-i artikkel, TSC harta muudatus, sõltumatute etalonide registri protsess ja LICENSES/ jaotamise ettepanek. Midagi sellest pole vastu võetud.
  • Studio vaated funktsioonidele 0,38 (kshana.dev/studio/). Silla taasesitus (kaks sünteetilist käitust ühel kellal: trajektoor, usaldusskoor, satelliidid, mida logi kuuleb, ja otsus, vastuvõtja enda lippudega Kshana alarmide kõrval); optiline PNT (kaks optical-atmosphere stsenaariumi valikulise algväärtustatud [timeseries] realisatsiooniga, MODELLED); holdover-test (tulemus holdover-test, mõõdetud ITU-T maskide suhtes, joonistatud tulemuse enda record.series põhjal); häirete vaatluskeskuse vaatur, mis avab teie loodud failid ega tarni ühtegi; lehel Tools Jammertesti hindaja, IMU sobitus ja MQTT telemeetriavorminguna; ning lehel Trust logivormingu valija (RTKLIB .pos, NovAtel OEM7, RTCM 3, GNSS-SDR, Septentrio SBF) valikulise IMU failiga. Iga vaade loeb faile brauseris ja ei lae midagi üles; iga arv säilitab sildi, mida register selle jaoks hoiab, ja igaüks kannab nõuandvat avaldust. Saidi leht /benchmark näitab fragmenti kshana bench leaderboard.

Parandatud#

  • Probleem #36: baiditäpsed fikseeringukihid. Baiditäpsed fikseeringukihid käivituvad ainult hostil, mis on deklareeritud lähtetasemeks (KSHANA_EXACT_PINS=1, seadistab scripts/gate.sh), mitte igal Apple-silicon Macil, sest Apple’i matemaatikateek erineb macOS-i väljaannete vahel; portatiivne kiht käivitub kõikjal ja tests/exact_pin_gate_guard.rs takistab baiditäpse kihi uuesti ainult platvormi põhjal piiritlemist. Sõltumatute etalonide võrdlused ise läbivad macOS-il. Ühtki literaali ei võetud uuesti ja ühtki tolerantsi ei muudetud. scripts/oracle-triage.sh ja docs/LOCAL-ORACLE-TESTS.md ütlevad, kuidas erinevust triaažida; .github/workflows/oracle-macos.yml on käsitsi käivitatav ja iganädalane diagnostika, mitte värav.
  • CodeQL: ankurdamata muster Studio usaldusavamise abifunktsioonis sobitub nüüd kogu päisega (web/studio/lib/trust-open.mjs).
  • CI: jooksutaja ketas. Töö check ehitab arendus- ja testiprofiilid ilma silumisinfota, nii et linkimine ei täida enam ketast.
  • Lähtekoodi kaitsed. Iga lähtefail, mis sisaldab fikseeringuid kandvaid testifikstuure, deklareerib oma fikseeringu skoobi ning testid, mis kirjutavad ajutisi faile, kasutavad iga kutse kohta unikaalset teed, nii et paralleelsed käitused ei saa põrkuda.
  • docs/SCENARIOS.md genereeritakse uuesti optilise atmosfääri valikulise välja timeseries jaoks.
  • JetBrainsi pistikprogramm: aegunud või eemaldamiseks kavandatud platvormi API-t ei kasutata. IntelliJ Plugin Verifier (verifyPlugin) IntelliJ IDEA ehituse 263 (2026,3: 263.6800.24 ja 263.7031.23) vastu leidis ühe aegunud kutse, FileEditorManager.openFile, toimingus Insert Example; see avab nüüd uue faili käsuga OpenFileDescriptor. Pistikprogramm on ühilduv ja puhas versioonil 2024,3 (since-build, muutumatu) ja mõlemal 263 ehitusel. CI käitab nüüd verifyPlugin ja ebaõnnestub ühilduvusprobleemide ning mis tahes eemaldamiseks kavandatud API kasutamise korral.

[0.37.0] - 2026-10-17#

Lisatud#

  • Optiline PNT läbi atmosfääri (stsenaariumi liik optical-atmosphere, docs/OPTICAL-ATMOSPHERE.md, projekteerimismärge docs/design/optical-atmosphere-0.37.md). Optilise lüli ja maajaamade komplekti jaoks esitab see lainepikkusest ja kõrgusnurgast sõltuva selge õhu sumbuvuse, Hufnageli-Valley turbulentsi oleku (Rytovi dispersioon, sintillatsiooniindeks, gamma-gamma summutused, apertuuri keskmistamine), kättesaadavuse lüli varu suhtes fikseeritud pilveklimaatikast, varu, mida vajatakse sihtkättesaadavuste jaoks, ja lae, mida ükski varu ei tõsta, katkestuste kestuse jaotuse, ajastus- ja kaugusmõõtmisvea katkestuse kohta kella holdover-mudeli kaudu, vahemaaga korreleeritud jaamade mitmekesisuse ning mis-kui võimendused lainepikkuse muutmisel, suuremal apertuuril, adaptiivoptikaga sintillatsiooni vähendamisel ja lisavarul. optical_linkbudget saab atmosfääri arvestava eelarve; ilma selleta on selle väljund bititäpselt identne versiooniga 0,36 (lävi A5). Kaks kaasasolevat stsenaariumi kannavad ILLUSTRATIVE pilveklimaatikaid. MODELLED: kolm registririda. Numbrilised tulemused täidavad läved A1 kuni A6, mis on eelregistreeritud failis xval/optical-atmosphere/PREREGISTRATION.md sõltumatu mpmath programmi vastu; see kontrollib fikseeritud valemite teostust, mitte atmosfääri, ja ühtki mõõdetud kättesaadavuse kirjet pole võrreldud, seega ükski rida pole VALIDATED. Lävi A4 jäi esmalt eksimisse 3e-9 võrra, sest kasutatud normaaljaotuse jaotusfunktsioon oli 1.5e-7 lähendus; jaotusfunktsioon asendati ja lävi jäeti registreeritud kujule. Natiivne ja WebAssembly ehitus tagastavad mõlema kaasasoleva stsenaariumi jaoks baitidena identsed dokumendid (A7, käitatud 0.37.0 integratsioonikommitil).

[0.36.0] - 2026-10-16#

Lisatud#

  • IQ monitoride tuvastus-ROC (PRO-32, docs/design/DETECTION-ROC.md). Monitoridega kampaania hoiab iga testistatistiku maksimumi fikseeritud sündmuste akendes (positiivne) ja sündmustest väljas olevates ruudustatud akendes (negatiivne, roc_window_s). Aruanne koondab need alarmi liigi kaupa ROC-ks koos selle AUC-i ja töökohaga seadistatud läve juures, kui roc.json ja aruande jaotis. Sünteetilistel kampaaniatel on juhusetaseme kontroll täidetud. C/N0 AUC lävi (0,95) ei ole täidetud (0,79), sest negatiivsed aknad vahetult pärast sündmust pärivad CUSUM-i kahanemise tuvastusest; see on registreeritud. MODELLED.

  • IQ monitorid labori taasesituse kampaanias (PRO-31, docs/design/MONITORS-IN-CAMPAIGN.md). Valikuline tabel [monitors] kampaaniafailis käitab IQ monitore jooksutaja ühel läbimisel: võimsus ja spekter pärast iga esiotsa ahelat ning C/N0, SQM ja lukk iga jälgitud kanali kohta. Nende alarme hinnatakse fikseeritud sündmuste suhtes: tuvastatud või tuvastamata jäänud, tuvastusaeg ja valehäired ekspositsiooni tunni kohta. Iga testi suletud kujuline valehäire näitaja on esitatud, sh uus kahepoolne Gaussi näitaja SQM testidele (2Q(k)). Ilma tabelita ei muutu midagi. Sünteetilistel kampaaniatel on võimsuse ja SQM valehäire läved ning C/N0 valehäire lävi täidetud; 18 sumbuvust 18-st tuvastatakse, kuid tuvastusaja piir, mis on konstruktsiooni järgi alla ühe detektorivalimi, ei ole täidetud ja on registreeritud. MODELLED; registririda „IQ monitorid hinnatud labori taasesituse kampaaniates“.

  • Labori sobitus IQ kampaaniatest, järeluuring (tests/iq_labfit_followup.rs, CI töö labfit-iq-followup). See testib kahte hüpoteesi, mille dokumendi docs/design/LABFIT-FROM-IQ.md §13,6 jättis lahtiseks, lävede vastu, mis on eelregistreeritud kommitis 1e532f84. See lisab kaks sünteetilist kampaaniat: S astmelise J/S-ga (algväärtus 2026_1014) ja R, värske ramp (algväärtus 2026_1015). Tulemused on failis docs/design/evidence/labfit-followup/RESULTS.md.

    • S1 täidetud: kui iga J/S tase on hoitud, taastatakse δ_eff piirides +0,185 dB. Rampkampaaniate −1,1 dB viga on hinnangualgoritmi viivitus.
    • S2 täitmata, kindlaks määratud testiga, mis väidab möödalasku: (d) nii nagu kirjutatud astmelisel kampaanial kehtib jälgimisahela mudeli korral (0,45 dB), kuid mitte empiirilise mudeli korral (6,42 dB).
    • R1 täidetud: värskel rampikampaanial on (d) sobitatud kaotuse viibimisaegadega, millele on lisatud iga sündmuse rambi kiirus, 1 dB piires mõlema mudeli korral.
    • Möödalasud (a′) ja (d) korduvad kampaanial R.
    • Kampaania võib nüüd esitada oma J/S-i testkonstruktsioonis profiilina step.
    • Ükski §13 otsus ei muutu ja registririda jääb MODELLED.
  • Piiratud FLL-i sisselukustumine, valikuline (DS-LOOP-05): uus ahelaprojekti võti [design.carrier] fll_pull_in_max_s (s), Rust LoopConfig::fll_pull_in_max_s. Kui fll_assist = "pull-in", sunnib see FLL-ist PLL-ile ülemineku pärast nii pikka aega, sõltumata PLI-st. Vaikimisi seadistamata ja siis projekti räsist väljas; vaikeprojekt ja selle räsi on muutumatud.

    • Kontrollitud lävede vastu, mis on eelregistreeritud kommitis 58789af0, süstitud tõe põhjal. Kontroll on täidetud: vaikeväärtus ei anna kunagi üle 9 seedil 10-st väärtusel 33 dB-Hz.
    • Täitmata: 1,0 s piirangu korral hoiavad 16 käitust 20-st lukku väärtusel 33 dB-Hz ja 8 20-st väärtusel 31 dB-Hz; ülejäänud tsüklevad sunnitud üleandmiste ja FLL-i tagasipöördumise vahel. Faasivärin on 1,8× ainult PLL-i oma väärtusel 33 dB-Hz.
    • ~35 dB-Hz sisselukustumise alampiir jääb vaikeväärtuse dokumenteeritud piiranguks.
    • MODELLED; registririda „Piiratud FLL-i sisselukustumine allpool vaikeprojekti FLL-ist PLL-ile ülemineku alampiiri (valikuline)“.
  • Hõivamise hüsterees ja esiotsa kvantiseerija jamming-liigis (CAP-06c): kaks valikulist jaotist stsenaariumile jamming.

    • [acquisition]: acquisition_threshold_dbhz (dB-Hz, jälgimislävel või sellest kõrgemal) ja reacquisition_delay_s (s, vaikimisi 0). Satelliit hõivatakse hõivamislävel või sellest kõrgemal, kui see on olnud hõivamata viivituse jooksul. Seda hoitakse, kuni see on jälgimislävel või sellest kõrgemal. Väljundid: epochs[].sats[].acquired (tõene/väär), epochs[].acquired (arv) ja fom.availability_acquired (1).
    • [front_end]: adc_bits (1 kuni 16) ja bandwidth_mhz (MHz, vaikimisi kaks korda kiibikiirus). Väljundid ploki front_end: agc_gain_reduction_db (dB, 10·log10(1 + J/N)), quantiser_loss_db (dB, võetud maha iga lüli efektiivselt C/N0-lt) ja loss_model. Kadu on Gaussi sisendi oma, märgitud mittekehtivaks CW-, kitsaribaliste ja pühitud segajate korral.
    • Ilma jaotisteta on iga väljund baitidena identne.
    • Kontrollitud lävede vastu, mis on eelregistreeritud kommitis 70c72fcc. Kvantiseerija kadu on 0,0007 dB piires sõltumatust Monte Carlost ja AGC näit 0,012 dB piires IQ-kihi AGC-ahelast.
    • Registreeritud hüstereesikäitused olid infoväärtuseta (iga lüli kadus), seega on see lävi NOT MET. Täiendav käituskomplekt, mis on registreeritud kommitis 37793290, täidab selle: iga lipp võrdub sõltumatu ümberarvutusega ja 732 lülist 1824-st näitavad hüstereesi.
    • Tähelepanek: CW-segajaga kaotab 1-bitine ADC umbes 5 dB rohkem kui Gaussi näitaja.
    • MODELLED; registririda „Hõivamise hüsterees ja esiotsa kvantiseerija jamming-liigis sõltumatute ümberarvutuste suhtes“.
  • Segaja maastikuvarjestus jamming-liigis (CAP-06b): valikuline jaotis [terrain] stsenaariumis jamming segajaga. Väljad:

    • dem_hgt: SRTM .hgt lahter, suhteline töökataloogi suhtes;
    • samples_per_side, ll_lat_deg ja ll_lon_deg (kraadi): lahtri suurus ja nurk;
    • geoid_undulation_m (m, vaikimisi 0), k_factor (vaikimisi 4/3) ja profile_step_m (m, vaikimisi 30).

    Mootor valib segaja ja vastuvõtja vahelise suurringi maastikuprofiili ning leiab domineeriva noaserva. Segaja vastuvõetud võimsust ja seega iga J/S-i vähendab ITU-R P.526-15 §4,1 ühe noaserva sumbuvus.

    • Tulemus saab ploki jammer_terrain: nu_max (1), diffraction_loss_db (dB), obstacle_distance_m (m), obstacle_terrain_m (m), path_length_m (m) ja profile_points (arv).
    • Ilma jaotiseta on iga väljund baitidena identne.
    • Kontrollitud lävede ja kümne asukoha vastu, mis on eelregistreeritud kommitis 92cd2bfd, Death Valley lisatud päris SRTM-i lahtril, sõltumatu numpy ümberarvutuse vastu. Kõik täidetud: halvim erinevus 1.6e-10 väärtusel ν ja sumbuvusel (lävi 1e-9), sumbuvus on segaja kõrguse suhtes monotoonne ja sumbuvus jõuab J/S-ini täpselt.
    • MODELLED; registririda „Segaja maastikuvarjestus jamming-liigis sõltumatu numpy ümberarvutuse suhtes päris SRTM-i lahtril“.
  • CRPA antennivõimendused jamming-liigis (CAP-06a): valikuline jaotis [crpa] stsenaariumis jamming. Väljad: elements_enu_m (elementide asukohad kohalikus ida-põhja-üles süsteemis, m), weighting ("null-steering" või "mvdr") ja bandwidth_mhz (MVDR müra ribalaius, MHz, vaikimisi kaks korda kiibikiirus).

    • Iga kanal moodustab oma satelliidi suunas moonutuseta kiire. Lüli müra skaleeritakse teguriga ‖w‖² ja segaja teguriga |wᴴa_j|² enne olemasolevat häirekindla C/N0 võrrandit.
    • Iga lüli saab ploki crpa: array_noise_gain_db (dB) ja jammer_gain_db (dB).
    • Ilma jaotiseta on iga väljund baitidena identne.
    • Kehtetu jaotis (tühi elementide loend, tundmatu kaalutus, mittepositiivne ribalaius) on viga nii kshana ja api::run_toml kaudu kui ka jamming::run_jamming kaudu.
    • Kontrollitud lävede vastu, mis on eelregistreeritud kommitis 08d83b4d. Täidetud: additiivsus (pärast parandust: esimene ehitus lisas uued ühikud iga segamiskäituse ühikutabelisse); üks element ei ole massiiv; mürategur ja efektiivne C/N0 sõltumatu numpy ümberarvutuse vastu 1e-9 dB piires; MVDR läheneb nullile kõrge JNR-i korral.
    • Täitmata: MVDR segaja võimendus 194 lülil 456-st portatiivse matemaatika 0,36 korral (202 hosti matemaatika korral; docs/revisions/STUDIO15-batch4-rebaseline.md) (halvim 1.7e-6 dB). Jäägid −100 kuni −188 dB on selle läve juures float64 eraldusvõimest allpool ja numpy erineb iseendast sama suurusjärgu võrra.
    • MODELLED; registririda „CRPA antennivõimendused jamming-liigis sõltumatu numpy ümberarvutuse suhtes“.
  • IQ jälgimismootor GNSS-SDR-i 0.0.19 suhtes (PRO-33): kshana iq track ja GNSS-SDR jälgivad samu sõltumatuid GPS L1 C/A numpy salvestusi väärtustel 30 kuni 45 dB-Hz.

    • Läved eelregistreeritud kommitis 48edd4a5. Registreeritud kalibreerimine ebaõnnestus GNSS-SDR-i vale üleandmise tõttu (F3), seega lisab muudatus 1 (1e4288c4) mõlemale vastuvõtjale ainult sisselukustumise FLL-i, lisatud enne mis tahes katsesalvestust.
    • Täidetud: kandja ja koodi värin ning Doppler nõustuvad 5 % piires igal C/N0 väärtusel.
    • Täitmata: mootori NWPR C/N0 näitab 2,3–7,1 dB alla GNSS-SDR-i SNV (F4, teadaolev hinnangualgoritmi piirang; M2M4 on tõest 0,06 dB piires); lukustusindikaatorid erinevad definitsiooni poolest (F5); üks 30 dB-Hz libisemise lahkarvamus (F6).
    • MODELLED; registririda „IQ jälgimismootor GNSS-SDR-i 0.0.19 suhtes sõltumatutel salvestustel“.
  • Kaks VALIDATED rida IQ-kihi koodidele (DS-GIQ-06b, PRO-39).

    • BeiDou B1I. Kõik 63 B1I peamist koodi vastavad kiip kiibi haaval GNSS-SDR v0.0.19 sõltumatule generaatorile (lävi eelregistreeritud kommitis 911106d1). Lisatud on ainult selle programmi väljund: B1I PRN koodid, mille avalik ICD määratleb, eesliite ja räsina.
    • GPS L1C. Kõik 126 L1CP/L1CD koodi ja 63 L1CO ülekatet vastavad kontrollveergudele, mida IS-GPS-800J trükib, ning arvutatud Legendre’i jada vastab selle tabelile 6.2-1 (läved eelregistreeritud kommitis fe372e26).
    • Read: „BeiDou B1I peamised kaugusmõõtmiskoodid sõltumatu generaatori suhtes“ ja „GPS L1C kaugusmõõtmis- ja ülekattekoodid IS-GPS-800J trükitud kontrollveergude suhtes“.
  • GLONASS-i, BeiDou ja Galileo E6 ribad spektrimudelis (CAP-12, signaalid): uued ribanimed glonass-l1of ja glonass-l2of (mis tahes FDMA kanal kujul glonass-l1of-k<K>, K = −7 kuni 6), beidou-b1i, beidou-b1c, beidou-b2a, beidou-b3i ja galileo-e6. Igaüks kannab oma ICD kandesagedust, modulatsiooni ja minimaalset vastuvõetud võimsust. Need on valikulised nime järgi: vaikimisi ribakomplekt ja iga olemasolev väljund on muutumatud.

    • Kontrollitud lävede vastu, mis on eelregistreeritud kommitis 5806f28b: ICD väärtused, nullid, B1C komposiit ja C/N0 tee on täidetud.
    • Kaks lävi jäid täitmata. Ühikpindala lävi oli kirjutatud kujul saavutamatu (F1). IQ-kihi B1I ja B1C lainekujud vastavad mudelile ainult ribakeskmistatult, nende koodide ebaühtlaste joonspektrite tõttu (F2).
    • MODELLED; registririda „Spektrimudel: GLONASS-i, BeiDou ja Galileo E6 ribad (valikuline)“.
  • Lahtrikeskmistav CFAR-valik IQ hõivamises (PRO-37): iq::acq::ca_cfar ja ca_cfar_cells otsustavad hõivamisruudustikul, võrreldes iga lahtrit selle Doppleri rea tugilahtrite keskmisega. Lävi tuleneb suletud kujulisest CA-CFAR valehäire tõenäosusest M mittekoherentse bloki jaoks (ca_cfar_pfa, ca_cfar_alpha), seega otsus ei sõltu valimivõimsuse normaliseerimisest. See on valikuline; vaikedetektor ja iga olemasolev väljund on muutumatud.

    • Kontrollitud lävede vastu, mis on eelregistreeritud kommitis 3724aefa: suletud kuju Monte Carlo vastu (18 juhtu 18-st) ja 1 % projekteeritud määr, mõõdetud 0,97–1,01 % Gaussi ja 2-bitiselt kvantiseeritud müral.
    • Üks lävi jäi täitmata: müravabal 2-bitisel signaalil ületab 1,28 % tipuväliseid lahtreid läve, koodi korrelatsiooni külgmaksimumide kohtadel (tähelepanek F1).
    • MODELLED; registririda „Lahtrikeskmistav CFAR-valik IQ hõivamises“.
  • Sintillatsioonimudel mõõdetud andmete vastu (PRO-34): IQ-kanali Cornelli sintillatsioonimudelit võrreldi mõõdetud 50 Hz GPS L1 intensiivsuse ja faasiga ekvatoriaalsest sintillatsiooniööst (Zenodo kirje 16941224, INGV, Malindi, CC BY 4,0), lävede all, mis on eelregistreeritud kommitis b6ccb499. Täidetud: intensiivsuse jaotus ja S4-ga seotud faasisintillatsioon. Täitmata: mudel summutab 2,4 korda sagedamini alla −10 dB ja 3,5 korda kauem (tähelepanek F1). Registreeritud töötlus loeb mudeli mähitud faasi (tähelepanek F2); faasitulemus kehtib ka lahtimähituna. scripts/fetch_scint_malindi.sh toob andmed. Rida jääb MODELLED: „IQ ionosfääri sintillatsioonikanal (Cornelli mudel) mõõdetud 50 Hz GPS L1 sintillatsiooni suhtes“.

  • Parandatud LuGRE valimilugeja (MR-09): realdata::lugre::parse_iqs_sdrx loeb LuGRE IQ partii, kus I on kõrges poolbaidis ja keskmise tõusuga tasemed 2v + 1 (SdrLayout::mid_rise), mis eemaldavad −½ keskmise, mille paljad kahendkomplemendi täisarvud I-l ja Q-l kannavad. run_acq.py --corrected annab GNSS-SDR-ile sama lugemise. Üldine ION lugeja ja iga olemasolev väljund on muutumatud: 149 stsenaariumi tulemust ja uuring on enne ja pärast baitidena identsed ning kindlaksmääratud LuGRE tähelepanekud loetakse nii nagu registreeritud (xval/lugre-reader/RESULTS.md). Ühtki registririda ei muudeta.

  • Valikuline BOC(1 1) jälgimine (CAP-07 (a)): LoopConfig::boc skaleerib DLL diskriminaatorid siinus-BOC(1 1) peamaksimumi jaoks ja lisab bump-jump monitori (väga varajased ja väga hilised korrelaatorid kohal ±0,5 kiipi, üles/alla loendurid, N = 8), mis nihutab koodi NCO külgmaksimumilt eemale; Channel::bump_jumps loetleb hüpped. Vaikimisi väljas ja iga olemasolev väljund on muutumatu. Kontrollitud lävede vastu, mis on eelregistreeritud kommitis 6b68f6cc, sünteetilisel BeiDou B1C signaalil: külgmaksimumilt algus, mis jääb ilma valikuta 0,55 kiipi kõrvale, tõmmatakse valikuga peamaksimumile ühe hüppega ajahetkel 0,08 s ja peamaksimumilt valehüpet ei nähtud. Üks lävi jäi täitmata: skaleerimise ühikutesti ruudustik ulatub diskriminaatorite lineaarsest vahemikust välja (tähelepanek F1 failis docs/design/evidence/boc-bump-jump/RESULTS.md). MODELLED; registririda „BOC(1 1) jälgimine: DLL skaleerimine ja bump-jump mitmetähenduslikkuse lahendamine (valikuline)“.

  • Labori sobitus IQ kampaaniatest (B7.1, docs/design/LABFIT-FROM-IQ.md). Labfit-stsenaariumi [input] campaign = "<out-dir>" sobitab kausta, mille väljund on kshana iq campaign, CLI-s (kshana iq labfit), Pythonis (kshana.iq_labfit) ja MCP labfit-tööriistas (ainult selle töökataloogis olevad kaustad). See sobitab ühe ühiku signaali, ahelaprojekti, esiotsa ahela ja segaja tüübi kohta:

    • C/N0 mudeli fikseeritud J/S suhtes, tsenseerimisega;
    • jälgimislävi otse ja suletud kujul;
    • jälgimisahela ja empiirilised lukumudelid, seotud C/N0 mudeli kaudu, nende viibimisaegadega;
    • algväärtustatud klastri alglaadimine salvestuste kohta, 90 % ennustusvahemikud ja ühe salvestuse välja jätvad hold-outid;
    • eelregistreeritud tabel [validation], räsitud, iga läve kohta PASS/FAIL.

    Aruanne on kshana.labfit-iq/1 JSON-i, CSV ja Markdownina, koos ühikute plokiga. Q_eff ei ole C/N0 andmetest tuvastatav ilma sõltumatu võimsusmõõtmiseta. See on fikseeritud, mitte kunagi sobitatud, ja sobitatud parameeter on delta_eff = delta - 10 log10 Q (projekti muudatus 2026-10-12). Tundmatu segaja tüüp võtab kõige kahjulikuma fikseeritud Q (cw, 1). Kshana enda stseenidest loodud sünteetilistel kampaaniatel läbib hold-out kattuvuse lävi (c). Lävid delta_eff (a') ja (b') (0 50 kampaaniast kaetud) ning suletud kujulise jälgimisläve lävi (d) ei ole täidetud: need on registreeritud oma väärtustega. MODELLED; registririda „Avatud vastuvõtja C/N0 ja lukustusmudelite kalibreerimine IQ kampaania tulemustele, koos fikseeritud ennustusveaga“. Vastuvõtja logi labfit-tee ja selle väljundid on muutumatud.

  • solar-system JPL-i tuumal (CAP-31): planetary_kernel_path võtab iga keha, mida SPK sisaldab (de440s puhul: Merkuur, Veenus, Maa, Kuu), tuumalt, silt KERNEL, ning lisab ploki kernel ainult siis, kui see on seatud. Uus rida, VALIDATED SPICE-i vastu (eelregistreeritud f8e946ea; halvim 3.3e-5 m, 1.0e-11 m/s). Vaikearuanne on muutumatu.

  • Porkchop DE440 efemeriidil (CAP-20b): maneuver::porkchop_kernel pühib C3 ja saabumise V∞ heliotsentrilistel olekutel DE440 SPK-st. Uus rida, VALIDATED SPICE-i olekute vastu

    • pykep 3.0.1 (eelregistreeritud 2d857fb1; Maa Marsile 2026-2028, 304 lahtrit, halvim 2.6e-14, sama minimaalse C3 lahter).
  • LRO mittegravitatsiooniline makromudel: NOT MET (DS-LRO-10, eelregistreeritud e82047e2). lunar_od::LunarMacroModel (valikuline kaudu LunarForceModel::macro_model): lamedate plaatide otsene päikesekiirgus Kuu varjuga, Päikest jälgiv paneel ning Kuu albeedo ja soojus-IR; LunarMacroModel::lro_generic on märgistatud üldine LRO lähendus avaldatud faktidest (bussiplaate pole: plaadi tabelit ei õnnestunud hankida). 4 h LRO kaarel jätab see vähendatud dünaamilise RMS-i väärtusele 6,668 m ja dünaamilise väärtusele 11,94 m, uskumatu kiirgusteguriga (umbes +21 / −22), seega kõik kolm lävi jäävad täitmata. Tähelepanek on kinnitatud testiga ja ühtki vaikeväljundit ei muudeta (docs/design/evidence/ds-lro-10-macro-model/RESULTS.md). Valikuline Kuu kahurikuuli SRP kasutab nüüd Maa varjuvööndi asemel Kuu koonilist varju (forces::conical_shadow_body).

  • Kuu OD: valikuline k2 tahke loodete mõju ja selenotsentriline relatiivsus (DS-LRO-11), vaikimisi väljas (LunarForceModel::lunar_tide, ::relativity); lüliti KSHANA_LRO_DEGREE ANISE ristvalideerimiseks (DS-LRO-04); 24 h LRO kaare fikstuur ja ainult informatiivne pika kaare sobitus (DS-LRO-09). Informatiivsed käitused on registreeritud failis docs/design/evidence/ds-lro-09-11-longer-arc/RESULTS.md; ühtki avaldatud arvu ei muudeta.

  • CR3BP 9:2 NRHO CAPSTONE’i suhtes (CAP-29d): uus MODELLED rida, mis mõõdab mootori ringpiiratud NRHO-d CAPSTONE’i lennatud orbiidi suhtes (JPL Horizons, märts 2023; eelregistreeritud 4e868170): periood 1,07 %, apolune 0,05 %, perilune 4,1 % CAPSTONE’i keskmistest, registreeritud 3 / 5 / 20 % läve sees. Mõõtmine, mitte valideerimine.

  • CR3BP pöörlevad olekud Kuu-keskseks ICRF-iks (RM-34, FUT-06): cr3bp::to_moon_centred_icrf / from_moon_centred_icrf / to_moon_centred_icrf_de440 vastendavad mõõtmeteta Maa-Kuu pöörleva oleku hetkelisele DE440 Maa-Kuu joonele, sh kaadri tasapinnaväline kiirus. Uus rida, VALIDATED SPICE-i kahe vektoriga kaadri vastu (eelregistreeritud 2313eb1b, muudetud enne mis tahes käitust d5ef79b3; 72 juhtu, halvim 1.8e-7 m ja 1.2e-9 m/s).

  • CR3BP perekonna liikmed JPL-i Three-Body Periodic Orbits API suhtes: NOT MET (RM-35, eelregistreeritud a9074f65). cr3bp_family (halo, NRHO ja DRO korrektsioon, monodroomia stabiilsusindeks, pseudokaare pikkusega jätkamine) vastab 54 API liikmele 58-st igal lävel (olek, periood ja Jacobi 1e-10 piires kõikjal). Üks L1 halo stabiilsusindeks (9.5e-2) ja kolm väikese DRO sulgumist (1.5e-8 kuni 3.3e-8 võrreldes väärtusega 1e-8) jäävad lävest mööda, seega on moodul #[doc(hidden)] ja ükski rida seda ei väida. Tulemused: docs/design/evidence/cr3bp-families/RESULTS.md.

  • Valikuline DE440 Kuu orientatsioon ja keskkond (FUT-05, DS-LRO-08; vaikeväärtused muutumatud): lunar_frame::try_icrf_to_moon_pa_de440, lunar::try_mci_to_mcmf_de440 / try_mcmf_to_mci_de440 (epohhiga ankurdatud, DE440 peatelgedes) ja lunar_od::De440LunarEnvironment (sisseehitatud DE440 PA orientatsioon pluss geotsentriline Päike ja Kuu kasutaja antud DE440 SPK-st). ANISE’i vastu (eelregistreeritud ea537710): orientatsioon 3.5e-7 rad piires ja LRO sobitused 1 mm piires, kuid efemeriidi haru jäi oma lävest mööda (Päike 30,7 m, Kuu 1,1 m, ANISE’i poolel ~1 ms ajanihe), seega see ei ole valideeritud rida. Tulemused: docs/design/evidence/fut05-de440-lunar-env/RESULTS.md.

  • Kuu tugisüsteemi kampaania datum, tinglikkusega skaleeritud NumPy lävi: NOT MET (eelregistreeritud b887eb05; jääb MODELLED). Samm 0 välistab pseudopöördmaatriksi tagavaravariandi kui põhjuse jaamade hinnatud lahknevusele 0,30; NumPy nõustub lävega kaheksast stsenaariumist kuuel, kuid stations_estimated jääb lävest mööda (6.8e-6 võrreldes väärtusega 5.9e-7) ning värskel kuupäeval 2026-12-01 muudab vaatlemata lõunapooluse maják majakainformatsiooni astakupuudulikuks, mida muutmata sõltumatu etalon ei suuda hinnata. Tulemused: docs/design/evidence/mr05-lunar-datum-cond/RESULTS.md.

  • Kuu tugisüsteemi datum päris vaatluskampaaniast (analüütiline Kuu) VALIDATED värsketel 2025 EDC normaalpunktidel (eelregistreeritud 31f5283 enne ühegi toomist): muutmata SPICE ja NumPy sõltumatu etalon nõustub raamatupidamise, astakute ja nullsidestuse osas ning 1.11e-3 piires sigmadel (lävi 1e-2), 8.95e-4 tinglikkusel ja 1.79e-3 risti/piki suhetel (lävi 2e-2). Ainult kovariatsiooniarvutuse Library kontroll; läved ei eralda Kuu mudeleid. Tulemused: docs/design/evidence/mr06-llr-analytic-fresh/RESULTS.md.

  • IAU kehade orientatsioon ja GM neljateistkümnel lisatud Päikesesüsteemi kehal, eraldatud reast „Iga Päikesesüsteemi keha füüsikalised konstandid“ VALIDATED reaks (eelregistreeritud 154bc54): Body::iau_rotation_et nõustub SPICE-i pxform väärtusega pck00011 pealt 1e-9 rad piires 574 maatriksil algsetel epohhidel ja 574 maatriksil 41 värskel epohhil, mida pole kunagi varem võrreldud (halvim Phobos 1.38e-10 rad), ning Body::mu võrdub väärtusega gm_de440 kõigil neljateistkümnel kehal. Algse rea ülejäänud osa (J2, keskmine raadius, aruanne) jääb MODELLED. Tulemused: docs/design/evidence/mr08-body-orientation/RESULTS.md.

  • Mitme tiiruga Lambert (maneuver::lambert_multirev): iga lahend kuni kolme tiiruga, mõlemad harud. Uus registririda, VALIDATED pykep 3.0.1 vastu (eelregistreeritud a75de851; 382 juhtu, 1058 lahendit, halvim kiiruse erinevus 1.6e-13 võrreldes väärtusega 1e-8). Sisemine Kepleri maandumiskaitse leidis funktsiooni maneuver::kepler_universal ühe piirangu kaarel e = 0,994; see on registreeritud failis docs/design/evidence/lambert-multirev/RESULTS.md.

  • Kasti-tiiva ja ECOM2 päikesekiirguse rõhk (DS-PA-14), valikuline. srp_boxwing: lamedate plaatide kasti-tiiva mudel Galileo FOC/IOV tabelitega GSC satelliidi metaandmetest, GNSS-i nominaalse yaw-juhtimisega, kiirgusteguri ja paneelipõhiste osatuletistega, ning ECOM2 empiiriline mudel oma osatuletistega. Valitakse käsuga ForceModel::box_wing_srp / PreciseForceModel::box_wing_srp (väljad srp_boxwing, vaikimisi None: kahurikuuli tee ja iga kuldne väärtus on muutumatu); kasti-tiiva komplekti korral on cr selle kiirgustegur. Võrreldud Orekit 12,2 vastu eelregistreeringu all (xval/srp-boxwing-orekit/): iga lävi täidetud, umbes 1e-15 suhteline; VALIDATED mudeli hindamisena, Galileo SRP ennustus jääb MODELLED.

  • Lapiku Maa SRP vari ja Päikese ketta äärepoole tumenemine (FUT-09, RM-11). Uus moodul srp_shadow: oblate_conical_shadow (WGS-84 varjutav ellipsoid), limb_darkened_shadow (Eddingtoni seadus) ja ShadowModel, valitakse käsuga ForceModel::srp_shadow (vaikimisi: olemasolev sfääriline koonuseline vari, muutumatu); forces::srp_accel_with_lit_fraction. Lapiku Maa vari nõustub Orekit 12,2 valgustussuhtega 7.4e-9 piires 2400 geomeetrial (VALIDATED, xval/srp-oblate-shadow-orekit/); ketta äärepoole tumenemisel puudub väline sõltumatu etalon (MODELLED).

  • NRLMSISE-00 termosfäär (FUT-08, RM-10, DS-PA-13). nrlmsise00: funktsioonide gtd7 ja gtd7d port (lülitid, päevane Ap ja 3-tunnine ap-massiivi režiim) NRL Fortrani avaliku omandi C-versioonist. See on bititäpselt identne selle C-pordiga ja pymsis 0.13.0 (NRL Fortran, üksiktäpsus) suhtes 1.9e-6 suhtelise vea piires 720-punktilisel ruudustikul ning see reprodutseerib 17 avaldatud testjuhtu (VALIDATED; xval/nrlmsise00-pymsis/). See valideerib porti, mitte mudeli täpsust mõõdetud tiheduse suhtes.

  • Valikuline NRLMSISE-00 õhutakistuse tiheduse tase. forces::DensityModel::{Exponential, Nrlmsise00 { f107a, f107, ap }}, forces::drag_accel_with_density, density_at ja propagator::ForceModel::drag_density. Staatiline eksponentmudel jääb vaikeväärtuseks, bitt bitilt. Kosmoseilm on mudeli kohta konstantne. VALIDATED orbiiditasemel Orekit 12,2 enda NRLMSISE-00 õhutakistuse vastu 24 h jooksul (halvim 0,03 m kuni 142 km õhutakistuse nihke korral; xval/drag-tier-orekit/).

  • Valikuline DE440 Päike ja Kuu Cowelli propagaatoris (RM-33, FUT-10). propagator::ForceModel::with_ephemeris võtab mis tahes EphemerisProvider (nt DE440 KernelEphemeris) kolmanda keha ja SRP liikmete jaoks; see keeldub pakkujast, kes ei suuda epohhi teenindada, loendab tagasilangemised analüütilisele reale ja on vaikimisi väljas. EphemerisProvider::relative_position_jd2 säilitab kaheosalise täpsuse. Orekit 12,2 vastu selle enda DE440 lugejal nõustuvad 24 h orbiidid täpsusega 0,017 m; eelregistreeritud Päikese/Kuu asukoha lävi jäi täitmata (6,4 m / 0,24 m; SPICE näitab sama lahknevust), seega MODELLED (xval/propagator-de440-orekit/).

  • Valikuline S1 atmosfääriline loodete mõju (DS-PA-03). tides::atmospheric_tide_s1 ja s1_air_tide_acceleration (Biancale & Bode 2006, GFZ STR06/01 tabel 1 mudel N1, astmed 2–6), lubatud käsuga air_tide_s1() objektidel propagator::ForceModel ja precise_od::PreciseForceModel; vaikimisi väljas. MODELLED (koefitsiendid kontrollitud uuesti avaldatud tabeli vastu; jõu mõjul puudub väline sõltumatu etalon).

  • Kauguskiiruse ja asimuudi/kõrgusnurga partii orbiidi määramine kõrgusnurga maskiga (RM-36, FUT-13). orbit_determination::determine_orbit_batch_tracking, simulate_tracking, predict_tracking, propagate_with_stm (variatsiooniline STM analüütiliste kahe keha + J2 osatuletistega), is_visible, measurement_with_partials; batch_ls::gauss_newton_analytic. Ainult kaugusmõõtmise tee on muutumatu. Võrreldud Orekit 12,2 partii vähimruutudega 8 eelregistreeritud stsenaariumil: iga lävi täidetud, välja arvatud müravaba oleku kokkulangevus (≤ 1 cm), mis jäi täitmata 2 stsenaariumil 4-st väärtustega 1,46 ja 1,74 cm, kui kshana on tõest 1e-8 m piires; registreeritud, MODELLED.

  • SP3 täpsuse kaalumine (DS-PA-06). sp3::parse_sp3_accuracy ja Sp3Accuracy::position_sigma_m vastendavad päise ja kirjepõhised täpsuskoodid vaatluse sigmadeks; SP3-ga kaalutud Galileo sobitusvariant (Tier-2 3D RMS 0,035 m võrreldes kaalumata 0,070 m) on lisatud muutumatute registreeritud käituste kõrvale. MODELLED.

  • Swarm-A täiskaare käivitustöö (DS-PA-08) failis .github/workflows/agency-od-validation.yml.

  • Planeetide gravitatsioon PDS SHADR tabelitest (CAP-30, CAP-31 osa). SphericalHarmonicField::from_shadr (src/gravity_pds.rs) loeb Marsi GMM-3 (d/o 120) ja GRAIL GL0660B (d/o 660); Body::with_gravity_field kinnitab mis tahes laaditud välja (vaikeväärtused muutumatud). Astme 20 kärped on kaasas (NASA PDS, avalik omand; tests/fixtures/planetary_gravity/NOTICE.md); täisfailid toob xval/planetary-gravity-pyshtools/fetch_data.sh. VALIDATED pyshtools 4.14.1 vastu (4e-15 piires kogugravitatsioonist väärtusel d/o 120 kogu sfääril, 5e-14 väärtusel d/o 660 korral |lat| ≤ 60°); keha koordinaatsüsteemi ühendus jääb MODELLED (iga välja natiivne koordinaatsüsteem ei ole kasutatud IAU süsteem).

  • Kõrge astme gravitatsioon kuni astmeni 2190 (RM-14, FUT-07). SphericalHarmonicField::acceleration_hf / potential_hf (Holmesi–Featherstone’i modifitseeritud ettepoole veerg, alatäitumiseta, polaarsingulaarsuseta), prepare_high_degree, voogedastav ICGEM laadija from_gfc_file / from_gfc_reader (normi ja maksimaalse astme kontrollid, loodete süsteem registreeritud, ajas muutuvad liikmed tagasi lükatud) ja scripts/fetch_egm2008.sh (täielik EGM2008, SHA-256 kindlaks määratud, ei ole kaasas; testid piiratud väärtusega KSHANA_EGM2008_GFC). propagator::FieldEvaluator valib selle valikulisel Geopotential. Nõustub Orekit 12,2 väärtusega 7.3e-17 m/s² täpsusega kuni astmeni 2190 ja 24 h 200×200 orbiit nõustub 0,13 m täpsusega. MODELLED: pyshtools jäi eelregistreeritud pooluselähedasest lävest mööda (jälgitud pyshtoolsini) ja orbiidi astme 70 tundlikkuse kontroll jäi mööda (0,73 m < 1 m); mõlemad on registreeritud failis xval/.

  • DOP853 integraator (FUT-11). integrator::integrate_dop853, integrate_dop853_checked, integrate_dop853_dense (7. järku tihe väljund), dop853_step, dop853_initial_step, rikkekindla sammukaitsega; propagator::Integrator::Dop853, propagate_dop853, propagate_dop853_checked. Vaikedraiver on muutumatu. VALIDATED SciPy 1.18.1 solve_ivp(method="DOP853") vastu: üksiksammud 5.6e-15 piires, kattuvad sammujadad, lõppolekud 1.6e-12 piires (xval/dop853-scipy/).

  • Töökindel Kepleri lahendaja (FUT-12). Uus moodul kepler: solve_kepler_markley (Markley 1995 alglähend, kaotusevaba jääk) kõigi 0 ≤ e < 1 korral, mähitud funktsiooniga propagator::solve_kepler_robust. VALIDATED 50-kohaliste mpmath juurte vastu täpsusega 0,9 ε·|E| kuni e = 0,999999 (xval/kepler-mpmath/).

  • Valikuline tesseraalne Maa gravitatsioon Cowelli propagaatoris (RM-09). propagator::ForceModel saab välja geopotential: Option<Geopotential> (with_geopotential, with_egm2008(nmax)). See hindab välja SphericalHarmonicField (kaasasolev EGM2008 kuni astme/järguni 70 või mis tahes ICGEM .gfc) Maaga seotud süsteemis, milleni jõutakse Maa pöörlemisnurga kaudu (EarthFixedFrame::Era) või CIO GCRS-ist ITRS-i ahela kaudu (EarthFixedFrame::Cio). Vaikimisi None: ükski olemasolev väljund ei muutu. VALIDATED Orekit 12,2 Holmesi–Featherstone’i vastu 24 h jooksul (6 juhtu, halvim 0,036 m), lävedega, mis on eelregistreeritud failis xval/cowell-tesseral-orekit/PREREGISTRATION.md.

  • Kaheosalised Juliuse kuupäevad läbi Maa pöörlemise orbiiditeel: jd2::gmst82, cio::gcrs_to_itrs_matrix_jd2, frames::teme_to_itrf_jd2 / itrf_to_teme_jd2, orbit::Propagator::position_in_frame_jd2 ja own_jd2_utc, From teisendused tüüpide jd2::Jd2 ja timescales::TwoPartJd vahel ning valikuline two_part_jd = true stsenaariumile ephemeris (ECEF, aluspinna jälg ja jaama vaade; vaikimisi väljas ja muutumatu ning võti jäetakse stsenaariumi räsist välja, kui see on väljas). Uus registririda, VALIDATED pyerfa gmst82/c2t06a vastu (eelregistreeritud b10475ee; 40 kuupäeva: GMST bititäpselt identne, maatriks 2.7e-14 piires, pöörlemine 1 µs sammude korral 1.1e-14 rad piires, kus üksik-f64 tee jääb neist mööda). Cowelli jõumudeli epohh jääb üksik-f64; põhjus on selle dokumentatsioonis.

  • EOP ennustus väljaspool tabelit (EopSeries::with_ls_ar_prediction, EopSeries::last_mjd): IERS Maa orientatsiooniseeria valikuline laiendus LS+AR ennustajaga, mis on antud selle viimasel real, nii et hilisema epohhi kaadriargumendid järgivad prognoosi, mitte ei kinnistu viimase rea külge. Tabelisisesed vastused on bititäpselt identsed (testitud); seeria jääb siiski viimase rea külge, kui seda ei kutsuta. Prognoosi täpsus jääb olemasolevaks LS+AR leiuks Bulletin A suhtes (MODELLED).

  • Taevapooluse nihked dX, dY CIO ahelas (cio::gcrs_to_cirs_matrix_with_offsets) ning funktsioonide precession_matrix, teme_to_gcrs_matrix ja uue funktsiooni otsesed ERFA vektorkontrollid. Uus registririda, VALIDATED pyerfa vastu (eelregistreeritud 979c1e39; 40 epohhi 1950–2100: pretsessioon ja CIO bititäpselt identsed, TEME→GCRS 1.1e-10 rad piires, kahe liikmega pööripunktivõrrandi rea ennustatud mõju). Olemasolevad funktsioonid on muutumatud.

  • Enne 1972. aastat kehtinud UTC kaheosalisel ajateel (timescales::tai_minus_utc_on_date ning Jd2::from_utc_calendar, jd2::utc_to_tai ja jd2::tai_to_utc alates 1960-01-01): triivava kiirusega („kummisekundi“) ajastu, SOFA triivitabeliga, päeva lõpu murdosaliste sammudega ja päevaosa UTC-st SI-ühikutesse skaleerimisega. Uus registririda, VALIDATED pyerfa dtf2d/utctai/taiutc vastu (eelregistreeritud 23c40661; 117 hetke 1960–1971, halvim 2.9e-11 s võrreldes 1 µs lävega). Iga 1972+ tulemus on bititäpselt identne (kontrollsumma kindlaks määratud enne muudatust). Enne 1960 on TAI − UTC 0, nagu SOFA-s. Üksik-f64 timescales::tai_minus_utc on muutumatu.

  • GLONASS-i edastatav satelliidikell (GlonassEphemeris::sv_clock_bias_s): −τn + γn·(t − tb) RINEX-i kirjest, satelliidikellalt loetud ajahetkel (kaks kindla punktiga iteratsiooni, RTKLIB-i konventsioon). Parsitud −τn ja γn olid varem kasutamata. Uus registririda „GLONASS-i edastatav satelliidikell ja edastatava orbiidi propageerimine“, VALIDATED RTKLIB 2.4.2-p13 geph2clk/geph2pos vastu (eelregistreeritud e099c42a; 292 juhtu päris 2013 edastusfailil: kella erinevus 0 s, halvim asukoht 1,1 mm võrreldes 1 cm lävega). Teegi funktsioon; ükski stsenaariumi väljund ei muutu. PZ-90.11 → ITRF teisendust ei rakendata ja moodul ütleb seda.

  • PPP ajalahend IGS jaama kella suhtes (0,36, FUT-19): float PPP filtri vastuvõtja kell jaamas WTZR nõustub IGS lõpliku kombineeritud kellaga selle jaama jaoks 0,075 ns täpsusega (standardhälve) ja püsiva nihkega −0,66 ns koondunud kahe tunni jooksul. Läved eelregistreeriti failis xval/ppp-time/. VALIDATED (uus registririda). Uus fikstuur igs_2025055_WTZR_05m_0006.clk, IGS lõpliku kellafaili jaamakella kirjed, mida satelliidikellade jaoks juba kasutatakse.

  • PPP ühtivus gLAB-iga (0,36, WP-07, RM-31): gLAB 6.0.0 käitati samadel WTZR sisenditel eraldi tööriistana (Apache-2.0 tuum; allalaadimise kontrollsumma kontrollitud avaldatud loendi vastu), menetlusliku muudatuse käsureaga, mis oli lisatud enne käitust. Esimesel registreeritud käitusel nõustuvad Kshana float PPP ja gLAB 0,05 m piires 240 epohhil 240-st ja viimasel 5,0 mm täpsusega. SPP lävi jäi täitmata (mediaan 1,187 m võrreldes väärtusega 0,50 m) ja on registreeritud tähelepanekuna: gLAB-i ja RTKLIB-i enda SPP lahendid erinevad teineteisest 0,852 m võrra. Registreeritud reegel jätab seetõttu mõlema tööriista harud tervikuna täitmata, samal ajal kui PPP ühtivus kehtib.

  • RINEX 4 navigatsiooni lugemine (0,36, WP-07, PRO-41): rinex::parse_nav loeb RINEX 4.00-4.02 navigatsioonifaile (> EPH GPS LNAV, Galileo I/NAV ja F/NAV, BeiDou D1/D2, QZSS LNAV; muud kirjed jäetakse vahele järgmise kirjepäiseni) ja parse_nav_with võtab valikuid. VALIDATED sama päeva IGS RINEX 3 ühendatud faili vastu: iga dekodeeritud väli identne ja 0 m asukohas. RINEX 2/3 lugemine on muutumatu.

  • BeiDou GEO edastatavad asukohad (valikuline): NavParseOptions::include_beidou_geo ja RinexEphemeris::sv_position_ecef_bds_geo (BDS ICD, −5 kraadi kalle). parse_nav jätab GEO-d endiselt vahele. MODELLED: eelregistreeritud võrdlus täpse orbiidiga on andmetest sõltuv ja pole veel käitatud.

  • RINEX 4 vaatlusfailid: päris RINEX 4,00 MGEX vaatlusfail loetakse testides (MODELLED, vormingu standardi järgimine).

  • RTK LAMBDA-ga päris RINEX-il (0,36, WP-07 ★): rtk_real::run_rtk, lühikese baasjoone kahekordsed erinevused kahe sagedusega GPS koodist ja faasist float Kalmani filtri ja LAMBDA täisarvulise fikseerimisega (suhtetest). VALIDATED IGS jaamadel WTZR ja WTZZ (1,4 m teineteisest) nende ITRF2020 baasjoone vastu eelregistreeritud lävedega: fikseeritud igal epohhil pärast esimest kümmet minutit, baasjoone vea mediaan 4,5 mm ja 95. protsentiil 5,5 mm.

  • Päris andmete PPP ühtivus RTKLIB-iga (RM-31): xval/ppp-parity/run.sh ja tests/ppp_parity_glab_rtklib.rs eelregistreeritud lävedega. RTKLIB v2.4.2-p13 PPP samadel WTZR sisenditel nõustub Kshana-ga 5 cm piires igal viimase kahe tunni epohhil (9,7 mm lõpus) kolmandal registreeringul; kaks esimest käitust, mis registreeriti tähelepanekutena, olid tahke loodete mõju väljas ja vastuvõtja antenn RTKLIB-i baasipesas. Üksikpunkti ühtivuse lävi jäi täitmata (1,09 m mediaan võrreldes väärtusega 0,5 m). gLAB haru pole käitatud (andmetest sõltuv).

  • Navigatsioonisõnumi kodeerijad peale LNAV-i (0,36, WP-07, PRO-40): gnss_navmsg kodeerib GPS CNAV-i (sõnumitüübid 10, 11, 30; CRC-24Q; pidev kiirusega 1/2 K=7 kodeerimine), Galileo I/NAV-i (sõnatüübid 1-5 paaris/paaritutel nominaalsetel lehtedel; 30x8 põimur; sünk 0101100000) ja Galileo F/NAV-i (lehetüübid 1-4; 61x8 põimur; sünk 101101110000), testdekoodritega. MODELLED: edasi-tagasi tsüklid ja ICD teadaolevad vastused; eelregistreeritud kontroll, et edastatavad Galileo efemeriidid asuvad kodeerija LSB ruudustikul, kehtis (halvim 3.6e-3 LSB), kuid jäi oma satelliitide arvu lävest mööda (15 20-st), registreeritud. Kodeerijad on teegi funktsioonid; stseeni ühendamine ei kuulu selle muudatuse hulka.

  • IONEX failide lugeja (0,36, WP-07): ionex::parse_ionex_file koos IonexFile, IonexHeader, IonexEpoch, IonexFileMap ja IonexTimeInterp: range fikseeritud veergudega IONEX 1,0 lugeja, epohhidega, mis loetakse esimese kaardi päevast, 9999 loetuna puuduvana, RMS kaartidega ning vormingu lähima, järjestikuse ja pööratud kaardi aja interpolatsioonidega; kaldtee TEC päise kihi kõrgusel. Kontrollitud lisatud sünteetilisel kaardil ja, andmetest sõltuvalt (toodud testi ajal kindlaksmääratud SHA-256-ga, ei ole koodibaasi kopeeritud), päris CODE GIM-i kärbitud osal: iga sõlm täpne; interpolatsioon vastab valemi etalonile täpsusega 4e-13 TECU. RTKLIB-i iontec nõustub 3.6e-13 TECU täpsusega 6885 punktis (eelregistreeritud B6). VALIDATED andmetest sõltuva tõendi alusel (omaniku otsus, 2026-10-13): test ebaõnnestub mis tahes kaardil peale SHA-ga kindlaks määratu.

  • Hatchi kandelaine silumine (0,36, WP-07): hatch::HatchFilter ja pvt::assemble_epoch_precise_smoothed, lahknemisvaba (ionosfäärivaba) vorm täpses üksikpunkti koostamises. MODELLED registreeritud tähelepanekuga: IGS jaamal WTZR langetab see üksikpunkti vea mediaani väärtuselt 1,55 m väärtusele 1,12 m ja 95. protsentiili väärtuselt 3,47 m väärtusele 3,21 m, jäädes alla eelregistreeritud 40 % vähendamise (allesjääv viga on nihketaoline, mitte müra).

  • Float PPP päris RINEX-il (0,36, WP-07): ppp_real::run_ppp, staatiline float täpse punktipositsioneerimise filter päris kahe sagedusega GPS koodil ja faasil IGS lõplike toodetega (antennide nihked ja variatsioonid, tahke Maa loodete mõju, faasi mähkumine, Shapiro viivitus, hinnatud märg viivitus, tsüklilibisemise tuvastus), koos parse_antex_receiver-ga. VALIDATED suletud IGS jaamal WTZR selle ITRF2020 koordinaadi vastu eelregistreeritud lävedega: pärast 6 h on viga 1,5 mm horisontaalselt ja 2,9 cm vertikaalselt ning iga viimase kahe tunni epohh on 10 cm piires.

  • SP3 täpse kella interpolatsioon (0,36, WP-07): Sp3File::clock_s ja clock_nodes interpoleerivad tabuleeritud SP3 satelliidikellad lineaarselt kahe ümbritseva kehtiva sõlme vahel (halva kella sentinell jäetakse vahele) ning ClockRinex::from_sp3 annab need objektile PreciseProducts, nii et täpne ahel töötab ainult SP3-st. VALIDATED IGS lõplike 30 s kellade vastu kuupäevast 2025-02-24 eelregistreeritud lävedega: 32 GPS satelliiti, keskpunkti RMS 0,121 ns (lävi 0,15 ns), 95. protsentiil 0,265 ns (lävi 0,30 ns).

  • RAIM kella holdover-i kvaliteedinäitajate kõrval (CAP-05b): valikuline jaotis [integrity] kella liigis esitab eraldi ploki integrity_fom (hetktõmmise RAIM eelseadistatud taevas fikseeritud asukohast: epohhipõhine otsus ja kaitsetasemed, kättesaadavus; kättesaamatu, kui GNSS on keelatud, mitte kunagi ekstrapoleeritud). Holdover-i näitajad on muutumatud; ilma jaotiseta on väljund baitidena identne. MODELLED.

  • JammerTest 2024 põhjal kalibreeritud receiver-trust läved (CAP-13): C/N0 languse, AGC ja segamisindikaatori monitoride eelregistreeritud kalibreerimine avalikul JammerTest 2024 andmekogumil (toodud käitusajal, mitte koodibaasi kopeeritud; examples/jammertest_trust_calibration.rs), tarnitud ainult valikulise profiilina [monitors] profile = "jammertest-2024-calibrated" (1,5 dB, 3,5 sigmat, 29). Suletud komplektil: AGC, segamisindikaatori ja liidu läved läbivad; C/N0 valehäire lävi ebaõnnestub (0,023 võrreldes väärtusega 0,02), seega on rida MODELLED (xval/jammertest-trust/RESULTS.md). Vaikeväärtused ja väljundid ilma profiilita on muutumatud.

  • Mitme satelliidi ARAIM rikkehüpoteesid (CAP-05a): ADD v4.2 alamhulga reegel üldistatud paaridest kaugemale (add_v42_subset_plan, add_v42_protection_levels_to_order; järk 2 on täpselt olemasolev MAAST-iga kontrollitud tee) ja valikuline täiustatud RAIM nende hüpoteeside üle (araim_subset_raim), mis esitab suurima eraldatusega alamhulga, kui rike tuvastatakse. Eeldused, mis vajavad sügavamaid alamhulki, lükatakse tagasi, mitte ei kärbita. MODELLED.

  • Silmapiir vastuvõtja usalduses (FUT-01): receiver-trust seanss võib esitada väärtuse [skyline]; selle taha jäävad satelliidid on taevast kaotatud (sky-blocked, behind_skyline, open_fraction) ja nende kaod liigitatakse geometry, mitte kunagi environment; ilma selleta on asimuudilünga tagavara ja iga väljund nagu varem. Meeskonnakoolituse generaator saab sündmuse natural-degradation (blokeeritud taevas, mitte häire) ja stsenaariumi scenarios/training/fjord-natural-degradation.toml. UERE x DOP Monte Carlo saab projekteerimismärkme kaks maskeeritud silmapiiri geomeetriat, eelregistreeritud eraldi: kõik 26 kontrolli läbivad.

  • RFC 3161 ajatempli kontroll (CAP-14): kshana::evidence::tsa::verify_token kontrollib ajatempli märgi allkirja (RSA PKCS#1 v1.5, RSA-PSS, ECDSA P-256 ja P-384), selle ESS allkirjastamissertifikaadi sidumist, allkirjastaja timeStamping kasutust ja selle ahelat usaldatud ankruni märgi genTime hetkel, võrguühenduseta; kshana evidence verify --tsa-ca <anchors.pem> rakendab seda paketi failile timestamp.tsr (valikuline; ilma selleta on aruanne muutumatu). VALIDATED, kitsalt: kõik 27 ise genereeritud juhtu nõustuvad OpenSSL 3.0.13 otsuse ja genTime osas, enne kontrollija kirjutamist eelregistreeritud võrdluse all. Tühistamist ei kontrollita.

  • Näitajapõhised kontrollitasemed iga liigi jaoks (RM-04): iga stsenaariumi liigi tulemus lõpeb nüüd plokiga figure_tiers, mis nimetab selle põhinäitajad, iga näitaja omava kontrollimaatriksi rea ja sellelt realt loetud taseme (näitajad, mida ükski rida ei oma, on loetletud tasemeta). Plokk lisatakse pärast käitust ja see eemaldub tagasi eelmiseks dokumendiks bait baidi haaval (api::without_figure_tiers). Liigil lunar-station-coverage puudub figure_tiers, kuni uus dateeritud ennustus asendab selle külmutatud oma; liikidel leo-ppp, solar-system, sweep ja sweep-nd pole skalaarset põhinäitajat ja lunar-attack-surface kirjutab kompaktset JSON-i. Kampaania liikmed säilitavad oma tasemeta dokumendid.

  • Kvanteelseadistus quantum-cai-coast (CAP-08c): kaasasolev inertsiaalne stsenaarium, milles külmaatom-interferomeetri kiirendusmõõtur, mis on määratletud interferomeetri füüsikaga ([accel_quantum.cai] platvormi vibratsioonitasemega), liigub inertsi mööda navigatsioonikvaliteediga kvartskiirendusmõõturi vastu 110-minutilise GNSS-i katkestuse jooksul. MODELLED.

  • Greenhalli täpne ekvivalentsete vabadusastmete arv (CAP-03): allan::edf_greenhall, täielik Greenhalli ja Riley (2003) algoritm (vahede järgud 1 kuni 3, müra eksponendid +2 kuni -4, kattuv ja mittekattuv, modifitseeritud ja modifitseerimata, suurte J tabelitega), ADEV, MDEV ja HDEV ümbristega. VALIDATED eelregistreeritud võrdlusega allantools 2024,6 vastu: 4 876 ruudustikupunkti 6.0e-13 suhtelise vea piires; allantools ebaõnnestub 32 täiendaval punktil, mis registreeritakse ilma etaloniväärtuseta. Funktsiooni assurance::uncertainty usaldusvahemikud on muutumatud bitt bitilt.

  • Külmaatom-interferomeetri veaosad (RM-26/27/28): Ramani laseri faasimüra (koos tagasipeegelduse viivituse liikmega), termilise pilve lainefrondi kõveruse nihe (puhas defookus, tuvastusraadiusega) ja interferentsimustri mitmetähenduslikkuse lahendamine (klassikalise abiga ja kaks küsitlusaega), teegi funktsioonidena failis src/inertial/cai_error_terms.rs, igaüks suletud kujul kontrollitud kvadratuuri või Monte Carlo vastu. MODELLED; pole veel stsenaariumi liigist kättesaadav (docs/QUANTUM-MODELS.md).

  • Kellalogide vormingud (RM-03): src/clock_log.rs loeb RINEX-i kellafaile, TimeLab-stiilis ASCII faasi- või sagedusloge ja TAPR TICC loenduri loge üheks normaliseeritud faasiseeriaks (tau0 antud või leitud, lüngad loetud, lünga poliitika). Valikuline: telekommunikatsiooni ajastuse seeria võib nimetada logi ([series.clock_log]) ja kellastsenaariumi tabel [clock_log] lisab ploki measured (ADEV, TDEV, MTIE). Ilma tabelita on mõlemad liigid baitidena identsed (docs/CLOCK-LOG-FORMATS.md). Eelregistreeritud võrdlus kolmel sünteetilisel logil täitis oma faasi- ja ühenduslävi; hinnangualgoritmid nõustuvad allantools-iga 2.5e-14 piires kõikjal, kus see hindab, ja see ei hinda kogu kirje MTIE punkti (registreeritud). MODELLED.

  • Sageduse sünkroniseerimise triivimaskid (RM-01): liik telecom-timing saab seitse püsitemperatuuri MTIE ja TDEV triivi genereerimise maski, ITU-T G.811 PRC, G.812 tüübid I kuni III, G.8262 EEC valikud 1 ja 2 ning G.8262.1 eEEC, astmefunktsiooni osadega, mida tabelid kirjutavad, ja etalonstsenaarium scenarios/telecom-synce-eec.toml (vabalt töötav OCXO EEC maskide vastu: see ebaõnnestub väärtusel 1 000 s, kus töö peab tegema ahel). Iga rida loeti uuesti itu.int tekstiga; G.812 (06/2004) on asendatud eelavaldatud 08/2026 väljaandega, mida ei õnnestunud lugeda. MODELLED (ümberkirjutus); olemasolevad maskid ja väljundid on muutumatud.

  • Filtri eeljaotuse juhis liigile gnss-ins (0,36, WP-09, RM-21 tähelepanek): paketi vaikefiltri eeljaotus sobib taktikalise klassi IMU-le. Navigatsiooniklassi IMU-ga võib vaikeväärtus muuta liidetud inertsi mööda liikumise halvemaks kui vaba INS: 52 m võrreldes väärtusega 11 m 70 m/s lennuki profiilil. [imu_*.filter_prior] tuleb seada anduri klassile vastavaks, nagu uued mere-, raudtee- ja lennunduspaketid teevad. Ükski kaasasolev stsenaarium ei seo navigatsiooniklassi IMU-d vaike-eeljaotusega: igaühel, mis kasutab vaikeväärtust, on kiirendusmõõturi jääknihked vähemalt 0,015 m/s². Ainult dokumentatsioon; ükski väljund ei muutu.

  • Katsepingi eksport kontrollitud simulaatori enda lugejatega (0,36, WP-09, CAP-16): 8 kaasasoleva stsenaariumi kshana bench-export liikumisfailid loeti tagasi gps-sdr-sim NMEA, laius/pikkus/kõrgus ja Maaga seotud liikumise lugejatega (MIT, kommit 28ca29a6, kasutatud eraldi tööriistana kaudu xval/testbench-gpssdrsim/; ühtki signaalifunktsiooni ei kutsuta). Need tagastavad eksporditud trajektoori täpsusega 1,2 mm, 0,15 mm ja täpselt. TÄHELEPANEK: selle simulaatori Maaga seotud lugeja ei suuda võtta täislaiust CSV-d, sest selle 100-märgiline reapuhver lõhub iga rea. docs/TEST-BENCH.md annab nüüd kasutatavad veerulõiked ja simulaatori 300 s piirangu. VALIDATED (uus registririda); ekspordi baidid on muutumatud.

  • GNSS/INS KF-GINS andmekogumil (0,36, WP-09, FUT-17): fusion::kfgins laadijad ja jooksutaja ning kangivarre mõõtmismudel suletud ahelaga EKF-is. KF-GINS demo andmekogumil (toodud testi ajal, mitte koodibaasi kopeeritud) on Kshana horisontaalne RMS etalontrajektoori suhtes 1,09 cm võrreldes KF-GINS-i enda 1,11 cm-ga ja iga eelregistreeritud lävi pidas. VALIDATED andmetest sõltuva tõendi alusel (omaniku otsus, 2026-10-13): andmekogum tuuakse SHA-256 kindlaksmääramistega ja reprodutseerimistee on failis xval/kfgins/PREREGISTRATION.md.

  • Seotud PNT filter liitpaketis (0,36, WP-09, FUT-16): liik fusion võtab valikulise tabeli [coupled], mis käitab ühe virnastatud filtri pseudovahemaadel kiirendusmõõturi nihke olekuga (fusion::coupled::CoupledPntBiasFilter), ja fusion::coupled::CoupledPnt3d on 3-D 8-olekuline versioon. Uus kaasasolev stsenaarium fusion-pnt-coupled: nihkega kiirendusmõõturite korral hoiab seotud režiim kvantkomplekti asukoha täpsusega 18,7 m (95. protsentiil) täieliku terviklikkusega, kus lahtisidestatud filtrid jõuavad väärtuseni 430 m. Ilma tabelita on nii fusion kui ka hybrid muutumatud (kindlaks määratud); hybrid keeldub tabelist. MODELLED.

  • Mere-, raudtee- ja lennunduse GNSS/INS paketid (0,36, WP-09, RM-21): kaasasolevad stsenaariumid gnss-ins-maritime, gnss-ins-rail ja gnss-ins-aviation trajektooriteegil ning valikuline tabel [tight] liigile gnss-ins, mis liidab SGP4 Walkeri konstellatsiooni pseudovahemaad (kõik satelliidid nominaalselt, kõrgeimad mõned halvenenult). Raudteepaketil hoiab tihe sidestus navigatsiooniklassi lahendi täpsusel 5,3 m läbi lõike ja tunneli, võrreldes lõdva sidestusega 12,9 m. Ilma [tight] on pakett muutumatu (kindlaks määratud). MODELLED.

  • Kandelaine faasi tihe sidestus (0,36, WP-09, RM-25 / FUT-17): fusion::carrier_tc, veaoleku EKF selgesõnalise kaheolekulise vastuvõtja kella ja float kandelaine mitmetähenduslikkustega, mida juhib SGP4 Walkeri konstellatsioon Klobucharide ja Saastamoineni parandustega mõõtmisahelas, aja järgi diferentseeritud kandelaine libisemise tuvastuse ja mitmetähenduslikkuse taasalgatamisega ning ainult koodil põhinev käitus samadel mõõtmistel võrdluseks. MODELLED: figure-8 sõidul on kandelaine lahend 2,5 cm võrreldes ainult koodiga 47 cm ning NIS/NEES on algväärtuste lõikes kooskõlalised.

  • GNSS/INS trajektooriteek (0,36, WP-09, RM-24): liik gnss-ins võtab valikulise tabeli [trajectory] väärtusega profile = "straight" | "figure8" | "stop_go" | "aircraft" | "uas" | "csv". Profiilid käsutavad Euleri kiirusi ja piki-rada kiirendust tõe olekust ning tuletavad tõelise IMU jäiga keha kinemaatikast (koordineeritud pöörded, tõusud, Coriolis); csv impordib tõese trajektoori (t, lat, lon, alt, vn, ve, vd, roll, pitch, yaw) ja lahendab IMU, mis seda reprodutseerib. Ilma tabelita lendab pakett oma ajaloolise sõidu, bitt bitilt (kindlaks määratud). MODELLED.

  • Laius/pikkus DEM lahtrid Kuu silmapiiri jaoks: [terrain] dem_tile_path loeb realdata::lola_dem tekstilahtri (kõrgused keskmise sfääri kohal laius/pikkus ruudustikul) polaarse stereograafilise dem_path asemel, nii liigile lunar-station-coverage kui ka moonlight-service-volume; aruanne kordab lahtrit (terrain.dem_tile, koos selle SHA-256-ga). realdata::lola_dem on nüüd ühendatud silmapiiri kiirmarssi. Lahter, mis on uuesti diskreteeritud kaasasolevast väljalõikest, annab jaamale väljalõike silmapiiri täpsusega 0,22 kraadi. MODELLED.

  • Maastik teenindusmahu ekspordi asukohas: jaotisega terrain kannab iga rida liigi moonlight-service-volume satelliidipõhises geomeetriaeksportis välja clears_terrain (satelliit ületab lameda maski ja ekspordi asukoha silmapiiri oma asimuudil), aruanne kannab asukoha silmapiiri (export_site_terrain) ja käitusaja CSV saab veeru. Ilma maastikuta on eksport muutumatu. MODELLED.

  • Põhiväljad mootorist (0,36, STUDIO-06): kshana::api::HEADLINE_FIELDS, field_importance_json() ja WebAssembly field_importance() määravad kaheteistkümne liigi jaoks, millised stsenaariumi väljad vastavad selle küsimusele, parim esimesena, punktiiriga teedena (jammers[].eirp_dbw). Studio loeb need enne oma järjestust. Ainult kuvamise metaandmed: mootor ei loe neid kunagi, ükski stsenaariumifail ei vaja neid, ükski tulemus neist ei sõltu. tests/field_importance.rs ebaõnnestub, kui liiki ei saa käivitada või teed ei leita ühestki liigi kaasasolevast stsenaariumist (see tabas kahte teed, mille Studio lamendatud id-d olid kirjutanud ilma massiivi nurksulgudeta).

  • Liigi-mooduli tabel mootorist (0,36, STUDIO-05): kshana::api::KIND_MODULES, kind_modules_json() ja WebAssembly kind_modules() annavad iga stsenaariumi liigi kohta, mille kontrollimaatriksi read nimetavad muud moodulit kui selle enda, moodulite nimed. Studio võimekuskaart kasutas oma käsitsi kirjutatud koopiat; tests/kind_modules.rs ebaõnnestub, kui tabelis olevat liiki ei saa käivitada või moodul ei esine ühelgi maatriksireal. Ükski väljund ei muutunud.

  • Lühike IQ käitus brauseriehituses (0,36): iq_signals() ja iq_run_short(fs_hz, duration_s, signal, ids, dopplers_hz, cn0_dbhz, seed) WebAssembly moodulis ehitavad sünteetilise stseeni, hõivavad iga satelliidi ja jälgivad hõivatuid, kõik mälus, piiratud väärtustega 0,25 s, 1 000 000 valimit ja 8 satelliiti. Stseeniehitaja ja signaali nime järgi otsing viidi ainult natiivsest iq::cli välja (väärtustesse iq::scene::synthetic ja iq::signals::by_name), nii et mõlemad ehitused jagavad neid; käsurea väljund on muutumatu. Natiivne test ja web/smoke.mjs võrdlevad sama päringut ühe kuldse väärtusega (tests/fixtures/iq_short_golden.json), bait baidi haaval: alates portatiivse matemaatika muudatusest (STUDIO-15, allpool) annavad brauseriehitus ja natiivne ehitus samad bitid.

  • Tüübitud Pythoni ja TypeScripti API-d (CAP-34): kshana.pyi annab tüübid suletud sõnavarale (ScenarioKind, iga liigi nimi; ErrorKind; ProvenanceClass) ning sõnastikele KindMeta ja FieldUnit; scenario_kinds() ja error_kind() tagastavad need. WebAssembly pakett lisab run_typed (üks käitus tüübitud objektina RunOutput parsitud dokumendiga kui data) ja scenario_kinds (parsitud KindMeta[]) ning selle kshana.d.ts kannab sama sõnavara; error_kind on tüübitud kui ErrorKind | "". tests/typed_api_sync.rs hoiab mõlemad loendid mootori omadega võrdsed.

  • Ühikud iga sweep-nd veeru jaoks (FUT-28): tulemus sweep-nd kannab nüüd väärtusi key_units ja metric_units, iga pühitud võtme ja iga registreeritud mõõdiku ühikut, loetuna pühitud paketi enda ühikutabelist. Telg võib deklareerida unit võtmele, mida pakett ei kordu; deklareeritud ühik, mis on vastuolus paketi omaga, lükatakse tagasi, ning ühik, mida kumbki ei anna, on null, mitte kunagi ära arvatud. points[].coords[] ja points[].metrics[] on kirjeldatud, nii et kõik 76 liiki on nüüd väljaühikute värava poolt täielikult kaetud (katmata liikide lagi 1 -> 0).

  • NumPy massiivid objektist RunOutput (FUT-26): Pythoni RunOutput saab array(path), columns(path) ja series(), mis tagastavad objekte numpy.ndarray arvulise loendi, kirjete loendi arvuliste veergude või dokumendi iga kirjeseeria jaoks. Iga massiiv võrdub väärtusega numpy.asarray samadest väärtustest objektist data() (dtype ja bitid). NumPy imporditakse ainult siis, kui üht neist kutsutakse, ning see jääb käitusnõuetest välja. Tüübitud failis kshana.pyi ja kontrollitud stubtestiga.

  • Kampaania optimeerija (CAP-32): liigi campaign uus valikuline jaotis [optimize] otsib ühe kuni kolme stsenaariumi võtit fikseeritud piirides ühe mõõdiku parima väärtuse jaoks: minimeeri, maksimeeri või saavuta sihtväärtus. See otsib ammendavalt ruudustikul või deterministliku piiratud Nelderi–Meadi simpleksiga. Iga hindamine on nimetatud liigi päris käitus ja on loetletud tulemuse väljal trace. Näide: scenarios/campaign-optimize-link-budget.toml. Läved eelregistreeriti (docs/design/evidence/cap32-optimize/):

    • Rosenbrocki funktsioon on täidetud (f* = 1.7e-20);
    • suletud kujuga 1-D sihtlahend on täidetud (6e-15 suhteline);
    • ruudustik on bitivõrdne sõltumatu jõumeetodiga;
    • simpleks saab vähemalt sama hästi hakkama kui 41 × 41 ruudustik 177 käitusega.

    Vooru 1 1-D lävi on registreeritud kui NOT MET, sest eelregistreeritud kast jättis lahendi välja. MODELLED; registririda „Ühe mõõdiku piiratud optimeerimine kampaania parameetrite üle“. Additiivne: jaotiseta kampaaniad on muutumatud.

  • Kalibreerimisansamblid (CAP-10): kolm üksiku algväärtusega kontrolli, mis on käitatud uuesti 200 sõltumatu algväärtuse (seed) üle eelregistreeritud lävede vastu, failis docs/CALIBRATION-ENSEMBLES.md (genereeritud skriptiga gen_calibration_ensembles; algväärtuse kaupa väärtused failis docs/data/calibration-ensembles.csv).

    • Kampaania Monte Carlo alglaadimise 95 % vahemik katab tõelise keskmise 192 ansamblil 200-st ja selle hii-ruut kontroll läbib 196 ansamblil.
    • Üksiku algväärtusega protsentiili tolerants läbib ainult 183 ansamblil 200-st: NOT MET, nagu ennustatud. See on umbes 2-sigma lävi, registreeritud ja mitte lõdvendatud.
    • Valge-FM ADEV kalibreerimised läbivad igal algväärtusel, nende halvim viga jääb tolerantsi piirist kaugele alla.

    MODELLED.

  • Sisseehitatud liigid tunnusjoone Scenario kaudu (FUT-27, pooleli): tunnusjoon BuiltinKind (api::BuiltinKind, näitajapõhise taseme konksu ja append_figure_tiers-ga) ning esimesed liigid, mis on sellele üle viidud (inertial, spoof, passes, link-budget, jamming). Väljund on muutumatu: kogu kataloogi manifest iga väljundi SHA-256-st on enne ja pärast identne (tests/scenario_output_manifest.rs).

  • Mänguväljaku mittetoomise kontroll (RM-07): tests/playground_no_fetch.rs kontrollib kolme asja:

    • iga Studio teegi stsenaarium on brauseripaketis;
    • pakett on baitidena identne asukohaga scenarios/;
    • iga brauseristsenaarium käitub tühjast töökataloogist.
  • Alt-PNT kaardid: päris gravitatsiooniväli, kaardivea Monte Carlo, täislahutusega SRTM (0,36, WP-10). Liik gravity-map võtab valikulise [reference]: gravitatsioonianomaalia, mis on sünteesitud kaasasolevatest EGM2008 koefitsientidest (või ICGEM .gfc failist käsu gfc_path kaudu, ainult natiivsed ehitused). See süntees nõustub ICGEM Calculation Service’iga umbes 1e-8 mGal täpsusega 794 sõlmes kahes piirkonnas, eelregistreeritud lävede 0,005 mGal RMS ja 0,02 mGal max vastu (VALIDATED; registririda „Gravitatsioonianomaalia süntees sfäärilise harmoonilise mudeli põhjal“). Uus kaasasolev stsenaarium gps-denied-gravity-nav-egm2008 käitab 60-minutilise etalonülesande sellel päris astme 70 väljal. Eelregistreeritud tulemus: sobitatud viga 3106 m, seega lävi < 500 m on NOT MET, nagu ennustatud (aste 70 on liiga sile), ja triivi kümnekordne vähendamine on MET (MODELLED). Valikuline [map_error_mc] käitab etalonülesande uuesti algväärtustatud, Gaussi korrelatsiooniga kaardivigade üle ja esitab sobitatud vea jaotuse (kaasasolev stsenaarium gravity-map-error-mc). Uuriv ja eelregistreerimata: kui kaardiviga on 2 mGal, korreleeritud 0,2 kraadi ulatuses (suurus, mida sobitaja enda sigma arvestab), jääb 1 realisatsiooni 20-st 500 m piiresse (mediaan 2,9 km, p95 14,7 km), võrreldes 144 m täiusliku kaardiga. Sünteetilise etalonülesande alla 500 m fiks eeldab, et kaart on täpne. Ilma kummagi valikuta on dokument baitidena identne varasemate väljalasetega. combined-altpnt võtab valikulise [magnetic_grid] (csv_path, column), mis loeb magnetkanali EMAG2v3 vormingus CSV-st. EMAG2 ei ole koodibaasi kopeeritud, sest selle tingimused ei ole selged: tools/fetch_emag2_tile.py toob selle kindlaksmääratud SHA-256-ga ja kärpib kasti. Päris EMAG2 ruudustikul ei väideta ühtki navigatsioonitulemust. Ühine kaardihinnang (maastiku SLAM, RM-18): altpnt::sequential::run_sequential_trn_on_map lennutab järjestikuse maastikunavigaatori salvestatud kaardi kohal, mis erineb tõest, kas usaldades seda või hinnates raku kaupa kaardikorrektsiooni FastSLAM-stiilis Rao-Blackwellised filtriga. Eelregistreeritud teadaoleva kaardi SITAN-i vastu 15 m korreleeritud kaardivea korral 20 algväärtusel: 1,5 % keskmine kasu, parem 10 juhul 20-st, seega mõlemad paranduslävid on NOT MET (10 % ja 12 20-st), ilma kahjuta täiusliku kaardi korral (MET). Üksik läbimine ilma taaskülastusteta ei lase kaarti õppida (xval/terrain-slam-rbpf/, MODELLED). Dokumendid terrain-slam on baitidena identsed. Päris SRTM-i testid käivituvad nüüd CI-s kahel lisatud täislahutusega väljalõikel; kõik eelregistreeritud läved on täidetud, lähim sõlm võrdub GDAL 3.8.4 väärtusega 8 punktil 8-st (xval/srtm-ungate/).

  • Koostalitlus, WP-08 (0,36; iga punkt eelregistreeritud ja lisatud eraldi enne selle sõltumatu etaloni käitust, igaüks uus VALIDATED registririda, välja arvatud telemeetria punkt, mis laiendab olemasolevat rida):

    • CCSDS orbiidiandmete sõnumid (src/odm.rs): OPM 3.0/2.0, OMM 3.0/2.0 ja OCM 3,0 (TRAJ, PHYS, COV, MAN, USER plokid) kirjutatud ja loetud KVN-is ja NDM/XML-is ning täistäpsusega OMM SGP4 elementide komplektist (OmmMessage::from_omm_file); väljund OmmFile::to_omm_kvn on muutumatu. Orekit 13.1.8 vastu mõlemas suunas: 27 Kshana sõnumit 30-st parsitakse Orekitis ja Kshana loeb iga Orekiti kirjutatud sõnumi, väärtused 1e-14 suhtelise vea ja epohhid 1e-9 s piires; neli tähelepanekut kindlaks määratud (Orekit nõuab ELEMENT_SET_NO, keeldub COMMENT XML-i kasutaja määratud parameetrites, ei kirjuta BTERM ilma BSTAR-ta ning loeb OCM suhtelisi epohhe TDB all SI sekundites). Pärand-OMM kirjutaja META_START lükatakse Orekiti poolt tagasi (registreeritud). Rida „CCSDS orbiidiandmete sõnumid (OPM, OMM, OCM)“.
    • CCSDS asendiandmete sõnumid (src/adm.rs, src/ndm_xml.rs): AEM 2.0/1.0 ja APM 2,0 KVN-is ja XML-is Orekit 13.1.8 vastu, iga lävi täidetud; Orekiti APM kirjutaja keeldub manöövrist ilma MAN_DELTA_MASS-ta (kindlaks määratud). Rida „CCSDS asendiandmete sõnumid (AEM, APM)“.
    • SPICE SPK eksport (src/spk_writer.rs): SPK tüüpide 9 ja 13 kirjutaja ja lugeja ning OEM-ist SPK ekspordini; CSPICE N0067 vastu on tuumad baitidena identsed SPICE-i omadega ja hindavad bititäpselt identselt. Rida „SPICE SPK eksport (tüübid 9 ja 13)“.
    • SPICE SPK tüübid 3 ja 21 (src/spk_writer.rs): tüübi 3 (Chebyshev) ja tüübi 21 (laiendatud vahejooned) segmendid, kirjutatud antud kirjetest ja hinnatud nii nagu SPICE seda teeb; CSPICE N0067 vastu on tuumad baitidena identsed SPICE-i omadega ja iga hinnang nõustub bitt bitilt mõlemas suunas. Rida „SPICE SPK tüübid 3 ja 21 (Chebyshev, laiendatud vahejooned)“.
    • Space Packet laiendused (src/space_packet.rs): teisene päis CUC/CDS ajakoodidega, paketi veakontroll, segmenteerimine ja voo kontrollid, ccsdspy 2.0.1, spacepackets-rs 0.18.0, spacepackets-py 0.32.0 ja CPythoni crc_hqx vastu, null lahknevust. Rida „CCSDS Space Packeti teisene päis, paketi veakontroll ja segmenteerimine“.
    • Telemeetria skeem 1,3 päris tarbijate kaudu: sünteetilise skeemi 1.3 voo Prometheuse eksposeering ja OTLP/HTTP JSON, sh geomeetriaseeria ja silt class, loetud täpselt prometheus_client ja OTLP prototüübiga, vastu võetud promtool 3.5.0 check metrics poolt ilma lint-probleemita ning edastatud muutmata OpenTelemetry Collector contrib 0.135.0 kaudu (andmetest sõltuv: tööriistad toodud kindlaksmääratud SHA-256-ga, väljundid lisatud).
  • Marsi orbiidi määramine, käitus 2 (0,36, WP-14, CAP-30): mars_od::fit_damped skaleerib normaalmaatriksi selle diagonaaliga ja summutab sammu (Levenberg-Marquardt), pärast seda, kui registreeritud Gauss-Newtoni sobitus ebaõnnestus maatriksil, mille toordiagonaal hõlmab kaheksa suurusjärku. Registreeritud eraldi (xval/mro-od/PREREGISTRATION-RUN2.md, sama kaar, läved ja redigeerimine). Hinnatud MRO läbimistel on orbiit 0,36 km RMS (0,53 km maksimum) piires MRO navigatsiooni rekonstruktsioonist, läved täidetud. Sobituse järgne Doppler on 48,6 mHz võrreldes lävega 30 mHz, täitmata (tähelepanek kindlaks määratud). Ainult hindamise muudatus R2-A1 on avalikustatud failis docs/revisions. Rida jääb MODELLED.

  • Marsi rampitud 2-suunalise Doppleri mudel ja orbiidi määramine (0,36, WP-14, CAP-30 osa, etapp 2): mars_od ennustab DSN rampitud X-riba 2-suunalist Dopplerit ODF-i rampitabelitest (valgusaeg, Shapiro, troposfäär, jaama aeg, DSN jaamad CIO ahela ja IERS EOP kaudu) ja sobitab Marsi orbiidiaparaadi (GMM-3, kolmandad kehad, SRP, õhutakistus). naif_kernel loeb SPK tüüpi 1 (kontrollitud CSPICE vastu) ja gravity_sh::from_shadr loeb PDS SHADR välju. Eelregistreeritud MRO navigatsiooni rekonstruktsiooni vastu päris MRO läbimistel (andmetest sõltuv, scripts/fetch_mro_od.sh, igakuine CI): ennustatud Doppler nõustub vaatlustega 12,5 mHz täpsusega (lävi 30 mHz, täidetud); registreeritud orbiidi sobitus ebaõnnestus hinnatud kaarel ega andnud orbiiti (tähelepanek kindlaks määratud). Rida jääb MODELLED.

  • DSN orbiidiandmete faili lugeja (0,36, WP-14, CAP-30 osa): odf::parse_odf loeb TRK-2-18 ODF-e. Päris Mars Reconnaissance Orbiteri ODF-il (NASA PDS, kaasasolev) vastab lugeja PDS sildi kirjete arvule, rühmade asukohtadele, jaamadele ja aegadele ning kõik selle andmetüübid on teada. Sildi faililõpu tabel on ühe rea võrra faili omast lühem, sildi ebakõla, mis on registreeritud tähelepanekuna. MODELLED. Orbiidi määramist nendel andmetel pole veel tehtud.

  • TWSTFT eelarve ja aja edastamise stabiilsus: liik time-transfer-budget (0,36, WP-14, FUT-19).

    • Kahesuunaline võrrand: twstft_budget lahendab selle suuruse T_A − T_B jaoks jaama seadmete viivituste, Ku-riba ionosfääri üles/alla asümmeetria, transponderi viivituse erinevuse ja Sagnaci liikmetega ning taastab otsemudeli täpsusega 1e-15 s.
    • Määramatuse eelarve: kombineeritud ruutkeskmisena, lüli TDEV kui tüüp A liige.
    • Lüli müra: kahesuunaline seeria saab flicker-faasimüra põranda, päevase mittevastastikkuse ja püsiva vastastikkuse jäägi. Valge värinaga pakett timetransfer on muutumatu.
    • Päris seeriad: antud BIPM Circular T, MJD,ns CSV või IGS jaamakella seeriate stabiilsus.

    MODELLED. Uus kaasasolev stsenaarium time-transfer-budget. PPP ajalahend on VALIDATED eraldi IGS jaama kella vastu GNSS-i päris andmete harus.

  • Sisenemiskuumutus, EO radiomeetria ja tõusukaod (0,36, WP-14, CAP-28): kolm uut liiki.

    • entry-heating: 3-DoF punktmassiga sisenemine pöörleva Maa või Marsi kohal Sutton-Gravesi peatuspunkti kuumutusega.
    • eo-radiometry: kujutaja SNR, MTF Nyquisti sagedusel, suhteline servavastus ja GIQE 4 NIIRS.
    • ascent-losses: mitmeastmeline gravitatsioonipöördega tõus gravitatsiooni-, õhutakistuse-, juhtimis- ja vasturõhukadudega, kontrollitud täpse identiteediga ideaalne dv miinus kaod.

    Sisenemise tippaeglustust kontrolliti avaldatud Stardusti nominaali vastu eelregistreeritud lävega: 35,44 g võrreldes väärtusega 33,4 g (+6,1 %, lävi 10 %). See rida on VALIDATED. Kuumutus, radiomeetria ja tõus on MODELLED. Samuti uued: reentry::us76_pressure, kaasasolevad stsenaariumid entry-heating-stardust, eo-radiometry ja ascent-losses ning docs/ENTRY-EO-ASCENT.md.

  • Asendijuhtimine reaktsiooniratastega: liik aocs (0,36, WP-14, CAP-21). Jäiga keskme inertsiaalne suunamispööre kolme või enama tasakaalustatud reaktsiooniratta ja MRP tagasisidega, minimaalse normiga rataste pöördemomentidega, mis on piiratud iga mootori piirini (aocs). See võib sulgeda ka ahela multiplikatiivsel EKF-il simuleeritud güroskoobist ja tähejälgijast (aocs_mekf). Tõese oleku ahelat võrreldi Basilisk 2.9.1 vastu kolmel juhul, mis eelregistreeriti enne koodi olemasolu (kolm ortogonaalset ratast, nelja ratta püramiid, küllastuv juhtum). Iga MRP komponent, keha kiirus, rattakiirus ja mootori pöördemoment nõustusid igal valimil, halvim 2.4e-14 sigmas ja 2.9e-11 rad/s rattakiiruses. See rida on VALIDATED; MEKF on MODELLED (NEES kooskõla). Uued kaasasolevad stsenaariumid aocs-slew ja aocs-slew-mekf ning docs/AOCS.md.

  • Maapealse kontakti ajastamine ja DVB-S2 ACM (0,36, WP-14, CAP-22/23): kaks uut stsenaariumi liiki. acm-link annab ühe satelliidi ja ühe jaama kohta iga läbimise Es/N0 ja selle ajal valitud DVB-S2 MODCOD (ETSI EN 302 307-1 tabeli 13 läved pluss varu). See annab ka andmemahu, mille ACM liigutab võrreldes püsiva kodeerimise lähtetasemega. contact-schedule teeb sama mitme satelliidi ja mitme jaama kohta ning koostab konfliktivaba kontaktiplaani (antenni ümberpööramine, üks jaam satelliidi kohta, prioriteediga kaalutud edastus, mida piirab iga ülekandmata andmemaht). See esitab piirväärtuse ahne plaani, esimesena saabunu lähtetaseme ja täpse optimumi väikestel hulkadel, koos ahne plaani optimaalsuse vahega. Juurdepääsuaknad pärinevad VALIDATED näiva läbimise ennustajast. Uued kaasasolevad stsenaariumid acm-link ja contact-schedule (illustratiivsed sisendid) ning docs/CONTACT-SCHEDULING.md. MODELLED (kaks uut registririda).

  • Starlinki Doppleri positsioneerimine avaldatud eksperimendi suhtes (0,36, WP-14, CAP-11 osa, MODELLED). See on eelregistreeritud asendusvõrdlus liigi leo-pvt Doppleri režiimist eelseadistusega starlink-sop artikli „Unveiling Starlink for PNT“ (NAVIGATION 72(1), 2025, doi:10.33012/navi.685) andmekogumi 3 protsentiilide vastu. Mudel kasutas 3 satelliiti (kindla reegliga valitud 47 kraadi mask), kõrgusabi puudus ja Doppleri sigma oli 30 Hz, 200 algväärtuse üle. Selle 90. protsentiili 3-D viga on 92,2 m väärtusel 20 s ja 870 m väärtusel 8 s, võrreldes avaldatud 2 m ja 10 m, seega on mõlemad kahekordse teguri läved NOT MET. Mudel on pessimistlik, mitte optimistlik, nagu ennustati: kolm fikseeritud satelliiti annavad palju vähem geomeetrilist mitmekesisust kui eksperimendi 63 satelliiti 10 minuti jooksul kanalivahetusega iga 15 s järel. Mõlemad möödalasud on kinnitatud (tests/starlink_doppler_published_proxy.rs).

  • Impulsiivse ülekande optimeerija DE440 peal (0,36, WP-14, CAP-20c/d): maneuver::optimise_transfer_kernel leiab ühe tiiruga ballistilise kahe impulsiga ülekande stardi- ja saabumiskuupäevad, mis minimeerivad stardi C3 või saabumise V-lõpmatuse tüübi I või tüübi II piires. See otsib 2-päevasel ruudustikul ja täpsustab seejärel 2-D Nelderi–Meadiga, heliotsentrilistel olekutel DE440 tuumast; see tugineb funktsioonile porkchop_kernel. Võrdlus eelregistreeriti (bf0439e8) sõltumatu SPICE + pykep 3.0.1 + SciPy 1.18.1 optimeerija vastu 2026 Maa-Marsi võimaluse korral: kõik neli optimeerimist nõustuvad 8.7e-13 suhtelise vea piires, kuupäevad 1e-5 päeva piires (VALIDATED, uus registririda). Teisese avaldatud etalonina sobib NASA/TM-2010-216764 (2026-2045 Maa-Marsi käsiraamat) tüübi II minimaalse C3 jaoks (9,182 vs 9,144) ja tüübi II minimaalse saabumise V-lõpmatuse jaoks (2,564 vs 2,565). Selle tüübi I minimaalne C3 ei sobi: 10,535 vs 11,11 (-5.18 %), kus teegi sõltumatu etalon nõustub Kshanaga. See möödalask on registreeritud ja kinnitatud.

  • Kuu etalonjaama uuring (0,36, ajendatud avaldatud materjalist kavandatud Kuu lõunapooluse etalonjaama kohta; allikad failis docs/LUNAR-REFERENCE-STATION.md): liik lunar-station-coverage, Kuu diferentsiaal-PNT mudeli Monte Carlo pühkimine lõunapolaarse kasutajaruudustiku ja ühe päeva epohhide üle, mis annab punkti kohta ja piirkonna üle protsentiili parandatud ja parandamata vea, kättesaadavuse koos põhjustega, katvuse fikseeritud läve suhtes, kaitsetasemed, katvusraadiuse asimuudi kohta ja parandusside lüli eelarve. See taandub täpselt liigile lunar-differential-pnt ühe punkti, epohhi ja katse korral; selle aritmeetika arvutati uuesti numpyga eelregistreeritud läve all (asukohad ja protsentiilid täidetud; jaama parandused jäid omadest mööda kahekordse täpsusega ümardamise tõttu, registreeritud). MODELLED; registririda „Kuu etalonjaama katvus- ja täpsuskaart“. Ei ole seotud ühegi asutusega ega ühegi asutuse poolt heaks kiidetud; ühtki väidet ühegi päris süsteemi toimivuse kohta ei esitata.

  • Eelregistreeritud ennustus: Kuu etalonjaama katvus (mitte valideerimine; MODELLED). docs/predictions/lunar-reference-station.md külmutab kommitil c05dac1d liigi lunar-station-coverage tulemused avalikult esitatud eelduste all, koos sisendite ja tulemuste SHA-256 räsidega ja nüüd fikseeritud hindamisprotokolliga (tegur 2 täpsuste ja kaitsetasemete jaoks, 10 protsendipunkti kättesaadavuse ja katvuse jaoks; muudetud eeldus saab uue dateeritud ennustuse, mitte kunagi redigeerimist; möödalask avaldatakse sama silmatorkavalt kui tabamus). Iga näitaja domineerib nelja satelliidi konstellatsiooni avaldamata elementide komplekt, mis on ILLUSTRATIVE, ja ütleb seda. tests/prediction_frozen.rs valvab seda; docs/VALIDATION.md saab jaotise „Eelregistreeritud ennustused“. Registririda puudub.

  • Kuu etalonjaama laiendused (0,36; jaamauuringu piirangud 2 ja 3 ning allikate lahendi stiil), igaüks valikuline liigil lunar-station-coverage ja vaikimisi puudu, nii et iga olemasolev dokument, sh külmutatud ennustus, on muutumatu: [receiver] (mitmeteelevi a + b exp(-el / el0) kasutajal ja jaamal, jaama oma valikuliselt Gaussi-Markovi epohhide üle, DLL koodimüra C/N0-st, kanalitevahelised nihked; väärtused ILLUSTRATIVE Kuul); orbit_err_growth_m_per_s (edastatava orbiidiviga lineaarne kasv parandusviivituse jooksul, ILLUSTRATIVE); [solution] (kõrguspiirang, sellega kolme satelliidi miinimum, staatilise kasutaja aken epohhide üle). Kaks lisa avaldatud väidete võrdlusele, kumbki eelregistreeritud eraldi enne oma käitust, asuvad redigeerimata registreeritud käituse kõrval: K5 kasvuga ebaõnnestub igal kiirusel; allikate lahendi stiiliga ebaõnnestuvad K1 kuni K5 ja K6 läbib (1 6-st), R300 parandatud p95 3-D viga langeb väärtuselt 280,6 m väärtusele 2,11 m. MODELLED; kolm registririda.

  • Kuu maastiku silmapiiri maskid (0,36; Kuu etalonjaama uuringu esimene piirang): valikuline jaotis [terrain] liigil lunar-station-coverage (jaam ja iga kasutajapunkt) ja moonlight-service-volume (iga ruudustikupunkt) annab igale asukohale asimuudist sõltuva silmapiiri 0,36 silmapiiritabeli vormingus, fikseeritud profiilist, mis on märgitud oma allikaga (station_horizon, user_horizon) ja/või kiirmarsist üle polaarse DEM-i (dem_path) mööda Kuu sfääri suurringe täpse kõverusega. Kaasas on 0,98 MB väljalõige avaliku omandi LRO LOLA LDEM_75S_240M lõunapolaarsest DEM-ist, 5 x 5 plokikeskmisena uuesti diskreteeritud väärtusele 1200 m (data/lunar-dem/, koos selle NOTICE, SHA-256 ja scripts/make_lola_south_polar_crop.py), ning ainult hoidlas olev stsenaarium scenarios/lunar-station-coverage-terrain.toml. Kontrollitud suletud kujuliste silmapiiride vastu (paljas sfäär, kraater platool, rasterdatud koonus); MODELLED, registririda „Kuu maastiku silmapiiri maskid fikseeritud profiilist või polaarsest DEM-ist“. Ilma jaotiseta on iga dokument, sh ühikute plokk, baitidena identne.

  • Geomeetriat arvestav usaldus (0,36 geomeetria projekteerimismärge, jaotis 4). Iga receiver-trust epohh, staatiline või laev, partii või otse, kannab oma satelliidigeomeetriat: good, degraded (põhjused few-satellites, high-pdop, high-hdop ja informatiivne sky-blocked) või unknown, kus logi ei anna satelliidigeomeetriat, koos HDOP-i, PDOP-i, VDOP-i ja kasutatud satelliitidega. See tuletatakse kõrgustest ja asimuutidest, mida vastuvõtja teatab (NMEA GSV, UBX NAV-SAT), olemasoleva orbit::dop tuuma kaudu, või võetakse NMEA GSA-st. Iga epohh kannab ka silti good, fair või poor, alati teatatud ja mitte kunagi hinnatud, ning märget HDOP-i, PDOP-i, VDOP-i, satelliitide arvu ja signaalikaoga sõnadega. Laeva skoor saab monitori geometry, mis ei arva midagi maha, kui geomeetria ei ole kehv (HDOP üle 4, PDOP üle 6 või alla 5 kasutatud satelliidi), siis tõuseb lakini 15 punkti; geomeetria üksi jõuab kõige rohkem halvenenud vööndisse, mitte kunagi ebausaldusväärsesse (alarmi pole). Iga mahaarvamine saab klassi geometry, environment või inconsistency, nii et kehv taevas ei loe rünnakuna. loss-of-lock on geometry, kui kaduma läinud satelliidid olid viimase teate ajal kõik alla 15 kraadi; kehva geomeetria mahaarvamine on inconsistency, kui HDOP, mida vastuvõtja väidab, on vastuolus tema väidetud taevaga rohkem kui max(1,0, 25 % tuletatud HDOP-ist), nii et võltsitud kehva taevaga ei saa silti osta. Uus tabel [geometry] määrab iga läve koos selle päritoluga (HDOP 4, PDOP 6, vähemalt 5 kasutatud, sigma_UERE 1,5 m, HDOP-i tolerants max(1,0, 25 % tuletatud HDOP-ist), kus 25 % on esinduslik valik konstellatsioonipõhiste kellade või alamhulga lahenditega vastuvõtjatele, 15 kraadi; IEC 61108-1 ja GPS SPS näitajad nagu viidatud, mida tuleb kontrollida standardite teksti vastu). Täielikku signaalikadu ei märgita taevana: kui nähtavad satelliidid ei ole jälgitud ja nähtavate satelliitide DOP on hea (ja jälgimata ei piirdu ühe horisondi poolega), kannab epohh signal_loss ja geomeetria mahaarvamine on environment. Väidetud HDOP või PDOP väärtusega 99 või rohkem, GGA kvaliteet 0 ja GSA režiim 1 loetakse fiksi puudumiseks, mitte DOP-iks. Lagi (cap_points 15), kalde lõpp (full_ratio 1,5) ja alampiir (floor, vaikimisi skoori degraded_min) on tabelis [geometry], nagu ka sildi head tasemed (HDOP 2, PDOP 3, 6 satelliiti, esinduslik); kehtiv lagi on min(cap_points, 100 - floor), nii et tabel [score], mis tõstab degraded_min (sh 0,35 oma), alandab lage ja seda ei lükata tagasi, ning alampiir alla degraded_min lükatakse tagasi. MODELLED; nõuandev tarkvara, mitte tüübikinnitust omav navigatsiooniseade (IEC 61108, IEC 61162): laeva navigeerimise eest vastutab jätkuvalt operaator.

  • Geomeetria jõuab igale pinnale: tulemuse JSON (epochs[].geometry, class igal mahaarvamisel, geometry_model, geometry_summary), elavad JSON-read (skeem 1,3), Pythoni ja WebAssembly receiver_trust, assess_vessel_log ja receiver_trust_replay, MCP assess_* tööriistad, tõendipaketid (epochs.json, config.json, geomeetriarada kokkuvõtte lehel) ja trust-telemetry (Prometheuse kshana_trust_geometry* ja silt class väljal kshana_trust_reason_active, OTLP kshana.geometry.*, CEF kohandatud väljad cs6 (geomeetria olek ja klassid), cfp3 (HDOP) ja cfp4 (PDOP), kontrollitud mõlema CEF-i sõltumatu etaloni parseriga, ning LEEF geoStatus, geoHdop, geoClass). Geomeetria silt eksporditakse samuti, lisatuna kõigi varasemate seeriate ja väljade järele ja ainult sisenditele, mis seda kannavad: Prometheus kshana_trust_geometry_label{label} ja kshana_trust_geometry_vdop, OTLP kshana.geometry.label ja kshana.geometry.vdop, LEEF geoLabel, geoPdop, geoVdop, geoUsed, ja CEF kolmas väli cs6 (silt) ning cn1 (kasutatud satelliidid); VDOP-i CEF-is ei ole (ujukomaga kohandatud väljad on hõivatud). Mõlemad CEF-i sõltumatu etaloni parserid loevad sildijuhud tagasi nii nagu kirjutatud (muudatus 5: 176 rida, 172 parsitud pycef-iga, 176 Logstashiga). Väidetud HDOP, mida väidetud taevas ei selgita, märgitakse igal epohhil ja loendatakse (geometry_summary.hdop_mismatch, rida tõendi kokkuvõtte lehel), hinnatud ainult siis, kui geomeetria on kehv. Signaalikadu eksporditakse eraldi, kuna geomeetria olek jääb degraded, kuni see kestab: Prometheus kshana_trust_geometry_signal_loss, OTLP kshana.geometry.signal_loss, LEEF geoSignalLoss=1; CEF-is ilmub see klassina environment väljal cs6.

  • orbit::dop_cofactor: kovariatsioonitegur (HᵀH)⁻¹ funktsiooni orbit::dop taga, sellest välja arvutatud sama aritmeetikaga.

  • Registririda „Asukoha viga geomeetriast: RMS viga = sigma_UERE x DOP“ (MODELLED, sisemine kooskõla): mootori vähimruutude fiksi algväärtustatud Monte Carlo 8 gnss_lib_py-ga sobitatud DOP geomeetrial valideeritud DOP tuuma kovariatsioonteguri vastu, tolerantsidega, mis on eelregistreeritud enne esimest käitust, ja kahe negatiivse kontrolliga, mis ebaõnnestuvad nõutud viisil; selle kõrval varasem kontroll neljal käsitsi valitud taevas hii-ruut usaldusvahemikega, esitatud kui käitatud enne eelregistreerimist.

  • Asimuudist sõltuvad silmapiiri maskid (src/skyline.rs, docs/SKYLINE.md, projekteerimismärkme punkt 1): kõrgusnurga lõige, mis sõltub asimuudist, tabelite punktiviisiline maksimum (iga interpoleeritud eraldi, mähitud väärtusel 360°), tänavakanjon suletud kujul (valikuliselt avatud otstega), teravate servadega sektorid ja maastikuprofiil Maa kõverusega; kehtiv lõige on max(mask_deg, skyline). Neli REPRESENTATIVE eelseadistust fikseeritud päritoluga (city-street, harbour-approach, fjord, container-terminal), välja kaupa ülekirjutatavad. Valikuline jaotis [skyline] failides gnss-sim, jamming, leo-pvt (iga režiim, sh polaarne pühkimine), leo-pass ja nmea-scenario koolitusfailides ning failides orbit ja integrity uue maajaama kasutaja user_site = { lat_deg, lon_deg, height_m } kaudu (geodeetilised vaatenurgad pöörleval Maal, geodeetilise ülesuunaga ARAIM-i horisontaalse ja vertikaalse jaotuse jaoks; iga valim on üks absoluutne hetk, epoch + t, milleni elementide komplektid, edastatavad efemeriidid ja SP3 failid edasi viiakse oma epohhidest, dateeritud värskeima satelliidi epohhi järgi, kui epoch pole antud; orbiidil olev user keeldub silmapiirist). Tulemused saavad skyline { source, open_fraction, provenance } ja valimipõhise masked_by_skyline. Ilma jaotiseta on iga stsenaarium baitidena identne versiooniga 0.35.0, kontrollitud väljalaskekommiti räside vastu. Kuus kaasasolevat näidet: orbit-urban-canyon-skyline, integrity-harbour-approach, gnss-sim-container-terminal-skyline, jamming-harbour-approach-skyline, leo-pvt-fjord-skyline ja kampaania leo-vertical-autonomous-vehicle-skyline (autonoomse sõiduki kanjon lameda lõikena ja tänavana; olemasolev kampaania on muutumatu). MODELLED.

  • Taevageomeetria funktsioonid (src/geometry.rs, projekteerimismärkme punkt 2): sky_geometry (nähtavad ja maskeeritud satelliidid asukohast, ajast ja konstellatsiooni eelseadistustest, kaherealistest elementide komplektidest (tle, kuni 4 MiB, propageeritud mootori SGP4-ga UTC-ks epoch) või antud satelliitidest; sky_source ja sky_statement ütlevad, kas taevas on esinduslik või taevas, mille elementide komplektid sel epohhil annavad, mitte mõõtmine; tle_skipped loetleb iga kasutamata rea koos põhjusega; sisendilaed 2000 satelliiti horisondi kohal, kontrollitud enne süsteemitabeli ehitamist, ja 16 vastuvõtja kella; viis DOP-i; ENU kofaktor ja kovariatsioon ühe kellaga süsteemi kohta või ühe ühisega; horisontaalne veaellips ühel sigmal ja fikseeritud usaldusnivool), sky_monte_carlo (algväärtustatud vähimruutude vead, kuni 5000), skyline_presets, skyline_profile ja skyplot_svg. orbit::dop_cov avab kovariatsiooni funktsiooni orbit::dop taga, mis on nüüd selle redutseering (valideeritud skalaarid on muutumatud). Pinnad: kshana sky ja kshana skyline, sama nimega Pythoni ja WASM-i funktsioonid ning MCP tööriist sky_geometry (40 tööriista), ja märkmik notebooks/geometry.ipynb (selle peegliga .md; käitab tests/python/test_notebooks.py). Iga tulemus kannab sildi MODELLED, veamudeli avalduse ja nõuandva avalduse.

  • Register: viis silmapiiri ja taevageomeetria rida. VALIDATED, igaüks võrdluses, mis eelregistreeriti enne selle sõltumatu etaloni käitust: Asimuudist sõltuv silmapiiri mask: nähtav hulk, asimuut ja kõrgusnurk ning DOP maski all Orekit 12,2 (TopocentricFrame, ElevationMask) ja gnss_lib_py 1.0.4 (get_dop) vastu, halvimad vaatenurga ja maski erinevused 1.1e-12° võrreldes väärtusega 1e-9°, identsed nähtavad hulgad, DOP 3.3e-13 suhteline (xval/orekit-skyline/); Horisontaalne veaellips ja süsteemipõhine kofaktor geomeetria kovariatsioonist numpy linalg.inv ja linalg.eigh vastu (standard P2), 270 juhtu, teljed 5.1e-13 suhteline (xval/numpy-ellipse/). MODELLED: kanjon, sektor ja maastiku redutseeringud; eelseadistused; taevageomeetria kompositsioon (eelseadistatud taevas, Monte Carlo pilv).

  • Geomeetria-usalduse, silmapiiri ja Kuu etalonjaama ridadega on registris 274 rida: 134 valideeritud, 136 modelleeritud, 4 partneri.

  • Kuu etalonjaam: jaama aja laboratoorium (MODELLED). Valikuline plokk [time_lab] liigil lunar-time-budget (src/lunar_time_lab.rs). See modelleerib jaama kella (vaikimisi miniRAFS klass, mis tahes nimetatud klass või seadmekaart, mis on sobitatud fikseeritud stabiilsuspunktidele), mis on juhitud LTC-le, siis vabalt töötav või iga N sekundi järel uuesti juhitud. See väljastab ajavea kõvera x(t), aja väärtusteni 1, 10 ja 100 ns (poolitamine suletud kuju kõrval) ja domineeriva liikme horisondi kohta, kõik ühikutega. Juhtimisjääk on ILLUSTRATIVE. LTC kiirust ei tuletata uuesti ja sellel on oma VALIDATED rida. Avaliku ICG WG-B Lunar PNT materjali (juuni 2024) nanosekundi tasemel siht on toodud allika avaldusena, mitte väitena. Kellade järjestus optiline < PHM < RAFS < miniRAFS kehtib väärtusest 1 s kuni 7e5 s ning test kinnitab PHM ja RAFS kõverate lõikumise ligikaudu väärtusel 7.5e5 s. See lõikumine on ühe müratüübiga kellamudelite omadus (puhas flicker FM vs puhas valge FM), mitte füüsikaline tulemus. Ilma plokita on aruanne, selle tabel ja kokkuvõte muutumatud. Näide: scenarios/lunar-station-time-lab.toml. Lisab ühe registririda, mis on märgistatud MODELLED.

  • Kuu etalonjaam: jaama geodeesia (MODELLED). Valikulised sisendid extra_reflectors ja extra_beacons liigil lunar-llr-datum lisavad ploki station_geodesy. Arhiveeritud laservahemõõtmise lõigu viie massiivi datumi informatsioon on kombineeritud sellega, mida lisatud retroreflektor ja lisatud VLBI majak fikseeritud asukohtades annaksid. Reflektorit mõõdetakse arhiveeritud epohhidel, mida see näeb, nende arhiveeritud kaaludega. Majakas kasutab võrku ja ajakava lunar-frame-campaign, jaamad fikseeritud. Plokk annab iga Helmerti 1-sigma enne ja pärast ning nende suhte. Need on Cramér-Rao piirid vähendatud parameetrite komplektile, ILLUSTRATIVE ajakava ja asukoha korral. Puuduvad või tühjad sisendid jätavad aruande baitidena identseks. Näited: scenarios/lunar-station-geodesy-baseline.toml ja -with-station.toml. Lisab ühe registririda, mis on märgistatud MODELLED.

  • Kuu etalonjaam: võrdlus avaldatud väidetega (MODELLED). Iga arvuline väide viies avalikus allikas on loetletud täpse sõnastuse, lehekülje ja esitatud eeldustega ning liigitatud võrreldavaks, osaliselt võrreldavaks või mittevõrreldavaks (tests/fixtures/lunar_station_published/CLAIMS.md; allikad URL-i, toomise kuupäeva, SHA-256 ja litsentsiga failis tests/fixtures/lunar_station/SOURCES.md). Osaliselt võrreldavaid väiteid hinnati kuue ühepoolse lävega, mis eelregistreeriti enne käitust (PREREGISTRATION.md, redaktsioon 2, 05bf9a19): 1 väidet 6-st eelregistreeritud läve piires (eelregistreeritud 05bf9a19). Katvus on 0,00 võrreldes väärtusega >= 0,95 mõlemal lõunapolaarsel ringil ja parandatud p95 on 280,6 m võrreldes väärtusega <= 1,5 m. Põhjus on satelliitide orbiidielemendid, mida ükski allikas ei avalda: ILLUSTRATIVE hoidlasisestel elementidel on neli satelliiti ühisel vaatel 8 % epohhidest, peaaegu singulaarse geomeetriaga. Käitus ei reprodutseeri väiteid nendel elementidel ega ole tõend, et väited on valed. Kindlaks määratud failis tests/lunar_station_published_oracle.rs. Üks registririda, märgistatud MODELLED koos tähelepanekuga.

  • Kuu etalonjaam: kellafaili andmete valmisolek. realdata::clk::rinex_clock_series esitab nüüd oma epohhide ajasüsteemi. See on väärtus TIME SYSTEM ID või, kui see on deklareerimata, päise satelliidisüsteemi vaikeväärtus. Tulemus ütleb ka, kas süsteem oli deklareeritud. Funktsioon keeldub tundmatust ajasüsteemist (näiteks Kuu ajaskaala), deklareerimata segasüsteemi failist ja failidest, mis on vastuolus, selle asemel et lugeda neid GPS-ajana. See tarnib sünteetilise jaamakella fikstuuri. Paranduste failivormingut ei määratleta, sest avalikku sellist ei ole.

Muudetud#

  • Moodulite fusion::ukf, fusion::tightly_coupled ja fusion::gnss_ins_ekf dokumentatsioon ei nimeta enam 17-olekulist UKF navigaatorit, täielikku INS-i tihedat sidestust ja selgesõnalist kellaolekut tulevaseks tööks; need viitavad moodulitele hybrid_ukf, tightly_coupled17 ja carrier_tc.

  • RINEX 4 ei lükata enam tagasi (0,36, WP-07): RINEX 4 navigatsioonifail lükati varem meelega tagasi; nüüd see loetakse (vt Lisatud). Versiooni 4 ja hilisemate vaatlusfailide korral sobitatakse päise sildid ainult veergudes 61-80, nii et uued vabateksti kirjed ei saa silditeks pääseda.

  • ionex::parse_ionex loeb päris IONEX faile (0,36, WP-07): täielik 16-väärtuseline kirje täidab veerud 61-80, mida lugeja pidas sildiks, nii et see tagastas None igal päris IONEX failil. See loeb nüüd kirje, mille sildiväli on arvuline, väärtustena. Ükski tarnitud väljund seda ei kasutanud.

  • Galileo E1 ja E5a vastuvõetud võimsused OS SIS ICD Issue 2,1 järgi (redaktsioon, 2026-10-14). Spektriribad galileo-e1 ja galileo-e5a ning LEO-signaali GNSS-ohvrid, mis võtavad neist oma võimsuse, kasutavad nüüd Galileo OS SIS ICD Issue 2,1 tabeli 12 minimaalseid vastuvõetud võimsusi: −157,25 dBW (oli −157,0) ja −155,25 dBW (oli −155,0).

    • Üheksa stsenaariumi tulemust liigub: spektrinäited, spektrikampaania, kolm LEO vastupidavuse vertikaali ja kolm LEO signaalidisaini. Efektiivne C/N0 liigub −0,25 dB ja J/S +0,25 dB nendel ribadel.
    • Iga liikunud väärtus (1766, vana → uus) on loetletud failis docs/revisions/CAP12-galileo-icd21-power-changes.md ja selle CSV-s, koos dokumendi tabelitega, mis liikusid. Ükski registrirea olek ei muutu.
    • Teine osa, samal päeval: LEO-signaali ohvrid galileo-e5b (−155,0 → −155,25 dBW, tabel 12 E5b) ja galileo-e5-altboc (−152,0 → −152,24 dBW). ICD-l ei ole täisriba E5 rida, seega AltBOC väärtus on tabeli 12 E5a ja E5b summade võimsussumma, ehitatud nii nagu vana väärtus. Kolm LEO signaalidisaini tulemust liigub (64 väärtust: need vastuvõetud võimsused ja LEO-st GNSS-i C/N0 halvenemine kahel ohvril), loetletud samas redaktsioonis (§5) ja CSV-s. Midagi muud ei liigu.
  • S2 atmosfäärilise loodete mõju parandus (tides::atmospheric_tide). Ray (2001) S2 õhurõhu harmoonilised on normaliseerimata P_nm koefitsiendid koosinusfaasi hilistumisega; neid kasutati täielikult normaliseeritutena ja hilistumisega kui IERS-i siinuse ees. Nüüd sisenevad need jagatuna väärtusega N_nm ja ε = 90° − ψ; uus tides::s2_air_waves reprodutseerib GFZ STR06/01 tabeli 5 mudelit A2 kõigi 21 laine jaoks (halvim 0,0005 cm, 0,05°; VALIDATED). Liiguvad ainult loodete mõjuga väljundid: Galileo CI sobitus 0,132 → 0,133 m, Swarm-A komponendid 1–2 mm võrra (eelregistreeritud failis xval/s2-air-tide-fix/).

  • Ainult dokumentatsioon: propagator::solve_kepler_checked, orbit::solve_kepler ja ephem::solve_kepler on dokumenteeritud pärandlahendajatena, numbriliselt muutumatuna, osutades moodulile kepler::solve_kepler_markley.

  • D9 vooru 3 (utck_bound) olek. BIPM Circular T 465 ilmus 2026-10-12. Eelregistreeritud prospektiivset skoori ei ole veel käitatud: väljaanne 465 sisaldab umbes 285 testväärtust ja peatumisreegel vajab 1000, seega umbes väljaandeid 465–468. Käitus vajab ka arhiveeritud 2026-09-30 laboripõhiseid faile, sest BIPM on vahepeal ümber kirjutanud 87 113-st. Registririda ja testi päis ütlevad seda; test, selle läved ja jaotus on muutumatud.

  • Dokumentatsiooni tõepärasuse läbivaatus (0,36). Teekaart, võimekuse read, projekteerimisdokumentide olekuread ja moodulite kommentaarid viidud koodiga vastavusse; ükski väljund ei muutu. Üksused, mis on juba ehitatud, kuid endiselt avatutena loetletud, on nüüd märgitud tehtuks: ITU-T maskide kontrollid, 24 h holdover-stsenaarium ja kellalogi sissevõtt (telekommunikatsiooni ajastus), esimese minuti kiirkäivitused, Lense–Thirring ja Orekiti propagaatori ristkontroll, ITRF-täpne GCRS-ahel, kuldsed ja platvormideülesed räsid, päritolu, mitmerikkeline ARAIM (ADD v4.2), ühe satelliidi FDE, CRPA teek, CAI interferentsimustri mitmetähenduslikkuse piir, katvusribade suurusmääramine ja 3-D orbiidivaade, jäiga keha asendidünaamika, OMM kirjutaja ja NAIF tuuma lugeja, DE440 Kuu libratsioon, käitusetähenduse lause mänguväljakul, PositioningFom, 17-olekuline tihedalt seotud navigaator ja gravitatsioonikaardi liik. Read esitavad ka täpselt, mis on endiselt avatud (näiteks kaheosaline JD failis orbit::Propagator, lugeja src/ionex.rs päris toote vastu ja mitme satelliidi välistamine failis raim). Puuduv docs/design/evidence/cn0-m2m4/RESULTS.md kirjutatakse selle testide värskest käitusest (M1–M4 läbivad) ja partnerile suunatud IQ valideerimise mustandil on praegused registri arvud.

  • Galileo E1 mälukoode enam kaasa ei pakendata. data/galileo-os-sis-icd/C7_E1B.txt ja C8_E1C.txt (ICD lisa C.7/C.8) eemaldatakse hoidlast ja pakettidest. ICD tingimused (tsiteeritud failis LICENSING.md) lubavad kasutajal koode allika viitamisega salvestada ja tootes kasutada, kuid lubavad levitamist ainult mittekaubanduslikel eesmärkidel, ja Kshanat pakutakse ka kommertslitsentsiga. galileo::e1b_table / e1c_table tagastavad nüüd väärtuse Result ja loevad kasutaja enda koopia muutujast KSHANA_GALILEO_E1B / KSHANA_GALILEO_E1C või lähtekoodi väljavõtte puhul kataloogist data/galileo-os-sis-icd/, kuhu uus scripts/fetch_galileo_e1_codes.sh need ICD PDF-ist välja võtab (räsikontrolliga). galileo::E1B_TABLE_TEXT / E1C_TABLE_TEXT eemaldatakse. Ilma tabeliteta tagastavad Galileo E1 signaalid (galileo-e1b, galileo-e1c) vea, mis ütleb, kuidas neid esitada, ja E1 testid jäetakse teatega vahele. Kui tabelid on olemas, jääb iga E1 väljund samaks. Ükski stsenaariumi-, golden- ega spektriväljund kooditabeleid ei kasuta. E5a lisade C.3/C.4 testfikstuurid (LFSR-i sõltumatu etalon failis tests/iq_signals.rs) on käsitletud samamoodi: need tõmmatakse sama skriptiga, lisatakse git-ignore'i ja test jäetakse ilma nendeta vahele.

  • Portaalne matemaatika kõikjal (0,36, STUDIO-15): kõik teegi f64 transtsendentfunktsioonid ning rand_distr normaal-, gamma- ja eksponentjaotuse valimid arvutatakse nüüd puhta Rusti teegi libm kaudu (portable_math::PortableFloat, portable_distr), nii et natiivne ehitus ja WebAssembly ehitus annavad kõigi 141 kaasapakitud stsenaariumi ja lühikese IQ-käituse tulemus-JSON-i baitideni identsena. Hind on see, et hostisüsteemi matemaatikateegiga arvutatud tulemuste viimased bitid nihkusid: 98 kaasapakitud 141 stsenaariumist muutus, 43 ei muutunud; 5 muutus oma suurimas väljas rohkem kui 1e-3 võrra ja ülejäänud vähem. Iga nihkunud väärtus on loetletud kujul vana -> uus failis docs/revisions/STUDIO15-portable-math-rebaseline.md (koos kõigi 136 127 nihkunud arvu CSV-ga); ükski lävi, tolerants ega piirväärtus ei muutunud. Muutunud avaldatud arvud: europa-surface-pnt kättesaadavus Maa kaugusega 0,719 -> 0,713 ja RMS-viga 86,147 -> 86,499 m (üks kättesaadavuse piiril olev epohh laheneb nüüd kõikjal ühtmoodi; macOS-i arm64 peal trükkis see 0,725 / 85,800 m); lunar-joint-od-clock jaama viga 3,541350 -> 3,536885 m VLBI-ga ja 2183,558 -> 2184,021 m ilma; paper/crossover/inertial.json, kaheksa vibration_psd väärtust 3 ühiku võrra viimases kohas (erratum tehnilises aruandes); avaldatud dokument cislunar-observability ümardusmüra põhja suurustes (kaheksa väärtust üle kuue olulise numbri, kuni 6.8e-5 suhtelisena; ükski järjekoht ega lävi ei nihkunud). Baitidentiteedi kaitsete (skyline_scenarios, geometry_corpus_identity, geometry_trust_no_change) kinnitatud räsid on viidud ümber nimetatud „0,36 portable“ lähtetasemele ning väärtused versioonist 0.35.0 on säilitatud ajaloolise kirjena; külmutatud Kuu tugijaama ennustus on puutumata ja selle portaalne uuesti käitus on salvestatud selle kõrvale (docs/predictions/*.portable-0.36.json). tests/lunar_joint_od_numpy_oracle.rs (valideeritud Kuu ühise OD rida): fikstuurid eksporditi uuesti ja numpy võrdlus käitati uuesti numpy versiooniga 2.4.6, registreeritud versioon, skript ja lävi muutumatud; kõik kuus võrku läbivad (docs/revisions/STUDIO15-lunar-joint-od-oracle-rerecord.md). Pärast STUDIO-15 liidetud partiide 2–3 töö kasutab samuti portaalset matemaatikat (457 väljakutsekohta 62 failis); mida see nihutas, on kirjas failis docs/revisions/STUDIO15-batch4-rebaseline.md: 12 kaasapakitud stsenaariumi (suurim suhteline muutus 5.2e-8, ükski trükitud arv ei nihku), 28 skyline'i kaitsetabeli rida uuesti kinnitatud, iq_campaign M2M4 digest, vana gnss-ins tõeväärtuste räsid, vaatlemata majaka datumi sigma (632,3769 -> 632,3772 m) ja kaks registreeritud tähelepanekut (CR3BP DRO sulgumised; CRPA A3, 194 456 lingist). Greenhalli täpne edf säilitab oma valideeritud läve topelttäpsusega (double-double) logaritmiga oma tuumas (docs/revisions/STUDIO15-greenhall-edf-portable.md) ja gps-sdr-sim testbench'i sõltumatu etalon käitati uuesti nihkunud NMEA eksportidel, iga lävi püsis (docs/revisions/STUDIO15-testbench-gpssdrsim-rerun.md).

  • README: Kuu komplekti rida nimetab iga osa tõendustaseme (varem oli kõik märgitud MODELLED).

  • realdata::clk::rinex_clock_series tagastab RinexClockSeries (jada, ruudustamise logi, ajasüsteem, kas see oli deklareeritud, kirje tüüp) (PhaseSeries, GriddingLog) ennikute asemel. See langeb nüüd tagasi satelliidi (AS) kirjetelt vastuvõtja/jaama (AR) kirjetele nõutud nimega.

  • Ükski skoor ei muutu, kui geomeetria pole halb; silt esitatakse alati. Hea või rahuldava geomeetria korral (kaasa arvatud 8 satelliidiga ainult GPS-i lahtine taevas) või teadmata geomeetria korral (monitor ei käitu) on iga skoor sama mis versioonis 0,35: tests/geometry_trust_no_change.rs hoiab mõlema näidissessiooni väljundid ja tests/geometry_corpus_identity.rs iga kinnitatud laevade NMEA korpuse (samuti ainult GPS-i lahtise taevana) ning meeskonna koolituse stsenaariumid versiooni 0.35.0 baitidena, kui lisatud võtmed on eemaldatud; kahes koolitusstsenaariumis, kus segamine muudab geomeetria halvaks, erinevad halvad epohhid ainult geomeetriavähenduse poolest. Halva geomeetriaga logi kaotab kuni 15 punkti, mida see versioonis 0,35 ei kaotanud. Muud kavatsetud muudatused on kõik lisandused: ülaltoodud võtmed tulemus-JSON-is ja tõendipakettides (score_model.weights on muutumatu); reaalajas JSON-ridade skeem läheb versioonilt 1,2 versioonile 1,3 (geometry lisatud, class igas vähenduses); väljavõtte kokkuvõte saab välja geometry; telemeetria saab geomeetria jadad, väljad ja sildi class ainult sisendite jaoks, mis neid kannavad, nii et versiooni 0,35 voog või tulemus kuvatakse baitideni nagu varem. geometry on 17. monitori nimi; see on loetletud viimasena väljal monitors_run, kui see otsustas (laev, mille logi annab geomeetria; versiooni 0,35 loend säilitab oma järjekorra ja kokkuvõtte monitoride arv kasvab ühe võrra) ning sellel pole kirjet [score.weights] (selle seadmine lükatakse tagasi: selle vähendus seatakse jaotises [geometry]).

  • tests/fixtures/dop/NOTICE nimetas gnss_lib_py litsentsiks Apache-2.0; väljalase 1.0.4 on MIT.

  • NMEA lugeja loeb nüüd GSA-d (lühike GSA jäetakse tähelepanuta, mitte ei loeta vahelejäetuks) ja säilitab GSV tõusunurgad ja asimuudid, ka signaalita loetletud satelliitide puhul; UBX lugeja säilitab NAV-SAT tõusunurga ja asimuudi. C/N0 loetakse täpselt nagu varem.

  • Tulemuse muutus: lairiba- ja pühitavad segajad kasutavad nüüd Q = 2. Segamisvastane võrrand kasutab nende segajate jaoks õpikuvalmi hajaspektri korrektsiooni Q, kus varem kasutati väärtust 1. Q = 2 on valge müra peaharul normeeritud sisendsignaali võimsusega; see on testides kinnitatud suletud kujule failist navsignal.

    • Muutumatu: CW- ja kitsaribasegajad (Q = 1), tundmatu segajatüüp (Q = 1, kõige kahjulikum väärtus) ja q_override.
    • Mõju: kus lairiba- või pühitav segaja mõjub, tõuseb efektiivne C/N0 kuni 3,0103 dB, tuletatud J/S läved tõusevad 3,0103 dB ja vaba ruumi keelurajoonid kahanevad teguriga 0,7071.
    • Muutunud kaasapakitud stsenaariumid: 12 144-st muutuvad, kõik nagu eelregistreeritud (xval/jammer-q/PREREGISTRATION.md, tulemused failis xval/jammer-q/RESULTS.md):
      • jamming-demo: C/N0 +3,01 dB;
      • jamming-harbour-approach-skyline: min_tracking 6 → 7;
      • lunar-jamming: kaotatud satelliite 26 → 0, jälgimise kaotuse kaugus mediaan 27,4 → 19,4 km;
      • tracking-loop: ahela dünaamika keelurajoon 75,2 → 53,2 km;
      • ning kampaaniad ja spektri ristkontrollid, mis neid sisaldavad.
    • Mõjutatud tarbijad: stsenaariumi liigid jamming, lunar-jamming, tracking-loop ja impairment-eval, spektriliikide jamming_kind_cross_check, IQ kampaania MODELLED võrdluskõver ja labfit'i vaike-Q ning interop-stseeni eksport.
  • JetBrainsi plugin: aegunud või eemaldamiseks ajastatud platvormi API-sid pole. Viis valikudialoogi kasutavad aegunud Messages.showChooseDialog asemel väikest DialogWrapper rippmenüüga; ühe faili valijad kasutavad aegunud FileChooserDescriptorFactory.createSingleFileDescriptor() asemel konstruktorit FileChooserDescriptor; animatsioon avatakse aegunud browse(File) asemel meetodiga BrowserUtil.browse(Path), mille platvorm 2026,3 ajastab eemaldamiseks. Since-build jääb 243. IntelliJ Plugin Verifier teatab tulemuse Compatible, ilma aegunud või eemaldamiseks ajastatud kasutuseta, versioonide 2024,3 (IC-243.21565.193), 2025,2 (IC-252.23892.409), 2026.2.3 (IU-262.10968.63) ja 2026,3 EAP (IU-263.6259.32) vastu; verifyPlugin kontrollib vaikimisi versiooni 2024,3 ja mis tahes loendit, mis on antud muutujas KSHANA_VERIFY_IDES.

  • gnss_sim::run_gnss_sim ja jamming::run_jamming tagastavad Result: kehtetu jaotis [skyline] on viga otse kutsumisel, nagu see oli juba kaudu api::run_toml, mitte vaikne tagasilangemine lamedale maskile. Katkestav muudatus nende kahe funktsiooni Rusti kutsujatele.

Parandatud#

  • Kampaania hindaja: päris jälgija valesisselukustumist ei loetud kunagi (iq::campaign). Jälgija valesisselukustumise kontroll viib kanali olekust LOCKED olekusse LOST, kui see rakendub. Hindaja märkis selle asemel kanali järgmise uuenduse, mis oli siis lukustamata ja jäi seetõttu lugemata. Sündmus false-lock, mis on teatatud olekust LOCKED, on nüüd üks episood oma ajahetkel, käituses ja igas seda sisaldavas nimetatud sündmuses. See, mis leiti sisselaskmise ajal või mida kordab juba olekus LOST olev kanal, ei ole uus episood. Uus test ajendab päris valesisselukustumist: seaduslik GPS L1 C/A kandja astub lukustatuna sammu 1/(2T) võrra (tests/iq_campaign_false_lock.rs).

    • Faili tests/iq_campaign.rs võrdluskampaanias muutub ainult ramp/agc-3bit PRN 11 (valesisselukustumise episoodid 0 → 1, 426 ja 437 lukustatud tunni kohta).
    • Selle lahtrite DIGESTid kinnitatakse uuesti.
    • Eelregistreeritud hinnatud tulemuste kinnitus jääb kehtima ja taastoodab jätkuvalt täpselt: selle räsis kaardistatakse tagasi parandusele eelnenud väärtusteni ainult need kuus välja, mida muutis see pärast registreerimist tehtud parandus. Parandatud väärtused kinnitatakse eraldi.
    • Ühtki lävi ei muudetud ja ükski VALIDATED rida, joonis ega veebinumber ei nihkunud.
  • lunar-frame-campaign: vaatluseta majakas teatatakse nüüd (leidis MR-05). Aruanne saab väljad unobserved_beacons ja warning ainult siis, kui mõnel majakal pole vaatlust, ning siis tulevad vaadeldud majakate sigmad nende endi informatsioonist, mitte kõik nullina. Datum on muutumatu ning ükski vaike-, kaasapakitud ega avaldatud väljund ei nihku (docs/revisions/BEACON-unobserved-cell-changes.md).

  • Kuu peatelgede tugisüsteem (lunar_frame::icrf_to_moon_pa, kasutavad lunar_od ja LRO sobitus): DE421 keskmise Maa ja peatelgede nihe failist moon_080317.tf rakendati vales suunas ja vales Euleri järjekorras, nii et analüütiline PA tugisüsteem asus PA-st umbes 208″ eemal selle asemel, et sellel olla. Nüüd on see ümber kirjutatud nii, nagu SPICE'i Frames Required Reading seda defineerib, ja ühtib SPICE'iga pxform('MOON_ME','MOON_PA') täpsusega 2.6e-16 rad; analüütiline PA tugisüsteem on DE440 PA-st 6″ kuni 8″ kaugusel (eelregistreeritud e1ead19b, uuesti registreeritud be33382e pärast seda, kui esimene kavandatud muudatus jäi lävele 1e-12 alla; docs/design/evidence/fut05b-me-pa-offset-sign/). Nihkuvad avaldatud arvud: LRO sobitus (tests/agency_lro.rs) toorkattuvus 53,8 → 39,9 m, dünaamiline 12,6 → 12,05 m, redutseeritud dünaamiline 6,65 → 6,67 m (läved muutumatud). Analüütiline pinu ühtib nüüd ANISE DE-klassi ristvalideerimisega (12,0 / 6,67 m) mõlemal tasemel; varasem dünaamilise taseme lõhe oli see viga.

  • MCP server keeldub väljast [terrain] dem_hgt (CAP-06b järeltöö). Liigi jamming maastikulahtri tee on nüüd failis inline_only::FILE_SOURCE_KEYS. Sisemine pind keeldub stsenaariumist, mis ühe nimetab, teatega, mis ei kanna ei teed ega operatsioonisüsteemi viga. Failiallika kaitse test märgib nüüd ka väljad, mis lõpevad _hgt.

  • Jd2::from_parts murdosalise päevaosaga kaotas murdosa UTC, TAI, UT1 ja Maa pöörlemise teisendustes (üks tund päevaosa pööras Maad 15° valesti); päevaosa normaliseeritakse nüüd täisarvuks. Ühtki mootori kutsujat see ei mõjutanud: igaüks annab täisarvulise päeva ja iga tarnitud väljund on bitthaaval identne.

Kavandatud#

  • Geomeetria esitatud skyline'ist (0,36 punkt 1, nüüd mootoris kujul src/skyline.rs): sky-blocked ja open_fraction skyline'ist, kui sisend selle annab (asimuudilünk tagavarana), looduslik halvenemise (fjord või terminal) sündmus failis nmea-scenario ning projekteerimismärkuse kaks maskeeritud geomeetriat sigma_UERE x DOP real, eelregistreeritud lisana.
  • Geomeetria navigatsiooniga RINEX-logidele (mootori enda lahendist) ja Androidi logidele (ridadest Status); mõlemad loevad täna unknown. Geomeetria lauses $PKSHT (versioon 1 muutumatu versioonis 0,36) ning Signal K ja OpenCPN integratsioonid.
  • Olemasolev lünk, mida versioonis 0,36 ei toodud sisse: kui iga satelliidi SNR-väli on tühi, ei rakendu ükski loss-of-lock ega C/N0 vähendus; täielik signaalikadu on nähtav ainult geomeetriamonitori signal_loss kaudu (klassifitseeritud environment). Selle vähendus on kavandatud.
  • Skeemi 1,3 voog välistes telemeetriaoraaklites (sõltumatutes etalonides) (Prometheuse tekstivormingu parser ja OTLP kollektor), mis katavad täna ainult 1,2 vooge.
  • Kahepoolne takistus (kanjon või kitsas fjord) loetakse signaalikaoks, mitte blokeeritud taevaks, kuni skyline on integreeritud.

[0.35.0] - 2026-10-12#

Kolmandate osapoolte tehisintellekti kliente nimetav lõik on siin välja jäetud; see on GitHubis failis CHANGELOG.md.

Galileo OSNMA kontrollija#

  • Uus moodul kshana::osnma ja kshana osnma verify <input>: avatud, puhtalt Rustis kirjutatud vastuvõtjapoolne Galileo OSNMA kontrollija. See loeb I/NAV lehti ja teatab satelliidi ja epohhi kaupa, kas navigatsiooniandmed on autenditud, koos põhjusega iga tõrke või viivituse kohta: HKROOT ja MACK parsimine, DSM-KROOT ja DSM-PKR uuesti kokkupanek, avaliku võtme Merkle'i kontroll, TESLA võtmeahela kontroll, MACSEQ ja sildi kontroll ADKD 0, 4 ja 12 jaoks, kaasa arvatud ristautentimine, ning kujult $PKSOS tulemus vastuvõtja usaldusmonitorile. Väljund kannab nõuannet, et olek ei ole navigatsiooni terviklikkuse teenus. docs/OSNMA.md ütleb, mida kontrollitakse ja mida mitte, ajanõude ning et Kshana ei anna õigusi ELi OSNMA ICD IPR-ide alusel (kasutajad toetuvad ICD lisa E volitusele). Realiseeritud SIS ICD väljaande 1,1 ja vastuvõtja juhiste väljaande 1,3 vastu. Lehed on CRC-kontrollitud ja u-blox UBX-RXM-SFRBX baitivoogu saab otse lugeda (--format ubx). Vaiketestid kasutavad sünteetilisi andmeid ja avaldatud primitiivide teadaoleva vastuse teste; valikuline test loeb ametlike vektorite kohalikult alla laaditud koopiat. Pärast sõltumatut ülevaatust võtab kontrollija oma aja ainult kontrollitud TESLA võtmetest (võltsitud kauge tuleviku alamkaader ei saa enam tõrget kustutada), laseb autentimisel aeguda ja järgib kasutusel olevat IODnav-i, arvestab kontrollitud häireteateid (mille Merkle'i leht sisaldab nüüd juhuslikku NPK välja) ja NMA olekut „don't use“, hoiab näivmärgised satelliidi olekust väljas, hoiab ahelaid CID järgi koos tühistamise ja uuendamisega, kontrollib KROOT täiteräsi ning piirab UBX kaadri pikkusi ja TESLA kontrolli tööd. Satelliit loetakse autenditud olevaks ainult seni, kuni selle saadetav uusim efemeriidi- ja kelladata on bitthaaval see andmestik, mis autenditi (mitte pelgalt sama IODnav-i all); olek või tühistamine autentimata NMA päisest loetakse ainult siis, kui kaks satelliiti on nõus või kontrollitud KROOT seda kannab, korratud vanem KROOT ei saa ahelat asendada ja soiku jäänud võtmevoog teatatakse.

Lisatud (MCP serveri kanalid)#

    Kolmandate osapoolte tehisintellekti kliente nimetav lõik on siin välja jäetud; see on GitHubis failis CHANGELOG.md.

  • kshana-mcp --http <addr>, voogedastatav HTTP, ise majutatav. Vaikimisi loopback; mitte-loopback aadress vajab väärtust --allow-remote ja kandja (bearer) tokenit muutujas KSHANA_MCP_HTTP_TOKEN; ükski tööriist ei loe ega kirjuta teed (IQ failitööriistad on väljas); päringu suuruse, aja ja samaaegsuse piirangud; CORS-päist pole; Hosti ja Origini kontrollid. Kshana ei majuta ühtki lõpp-punkti (docs/deploy/mcp-http.md, koos Dockeri, Fly.io ja Cloud Runi mallidega).

Lisatud (liidesed)#

  • osnma_verify Pythonis ja WebAssembly's. Kontrollija käsu kshana osnma verify taga mälus olevatel baitidel, tagastades JSON-i, mida --json trükib (nõuanne selle väljal advisory; ainult autentimise olek, mitte navigatsiooni terviklikkuse teenus). Samad keeldumised mis käsurea puhul. Mitte MCP-s: sisend on pikk töötlemata vastuvõtjavoog, mida CLI ja Python teenindavad paremini. docs/SURFACES.md ja docs/OSNMA.md ütlevad seda.

  • trust_telemetry WebAssembly's, Pythonis ja MCP-s, pluginakäsu ja JetBrainsi toiminguga. Renderdab usaldusvoo või tulemuse receiver-trust Prometheuse tekstina, CEF- või LEEF-süslogiridadena või OTLP JSON-i andmekoormana, kodeerijatega, mida kasutab kshana trust-telemetry (kshana::surface::trust_telemetry); sokkel puudub ja kella pole. Plugin: /kshana-trust-telemetry ja oskus trust-telemetry. JetBrains: Render Trust Telemetry. Funktsioonid wasm ja python ning MCP server lubavad nüüd ka otlp, mis ei lisa ühtki crate'i.

  • Pariteedi pühkimine. JetBrainsi toimingud Validate Scenario, List Scenario Kinds ja Assess Receiver Stream; kshana --help loetleb nüüd receiver-trust evidence, evidence, trust-telemetry ja nmea-scenario; märkmik compliance-and-test-bench (compliance'i vastendus ja test-bench'i eksport); ning iga allesjäänud JetBrainsi lahter „CLI only“ failis docs/SURFACES.md on nüüd selge N/A koos põhjusega.

  • Kolmandate osapoolte tehisintellekti kliente nimetav lõik on siin välja jäetud; see on GitHubis failis CHANGELOG.md.

Lisatud (tõendipaketid)#

  • kshana receiver-trust evidence ja kshana evidence verify: allkirjastatud kontrollitavad tõendipaketid GNSS-i usaldussündmuse jaoks. Pakett koondab töötlemata logilõigu ja kogu logi SHA-256, konfiguratsiooni kõigi lävedega, epohhipõhised tulemused ja põhjused, mootori versiooni, räsiahelaga manifesti ja iseseisva HTML-kokkuvõtte, allkirjastatuna Ed25519-ga (võti käsust kshana evidence keygen või teie enda failist; võtmeid ei salvestata kunagi paketti ja *.evidence-key on git-ignore'is). verify kontrollib iga räsi, ahelat ja allkirja ning nimetab täpselt, mis ebaõnnestub; valikuga --pubkey kinnitab see allkirjastaja. RFC 3161 tõendi saab lisada ning see loetakse ja seotakse manifestiga (autoriteedi enda allkirja see ehitus ei kontrolli; openssl ts -verify katab selle). Logilõik on akna täpsed baidid seal, kus lugeja teatab allika vahemikke (NMEA, UBX, RINEX 3, Android), vastasel juhul kogu logi, ja manifest ütleb, kumb. Loomine ja kontrollimine on puhtad avalikud funktsioonid (kshana::evidence), mis ehitatakse sihtmärgile wasm32. Paketid ütlevad, et need on tehniline kirje, mitte õiguslik arvamus. Uued sõltuvused on puu ed25519-dalek (BSD-3-Clause ja Apache-2.0/MIT, minimaalsed funktsioonid) ja otsene zeroize (juba selles puus) võtmematerjali kustutamiseks. Vt docs/EVIDENCE-PACKS.md.

Lisatud (usaldustelemeetria)#

  • kshana trust-telemetry: GNSS-i usaldus turvatelemeetria allikana. Loeb epohhipõhist usaldusvoogu (JSON-read: skoor 0-100, riba, põhjused) või partii tulemust receiver-trust ja annab selle Prometheuse lõpp-punktile /metrics (vaikimisi localhost), süslogisündmustele CEF- või LEEF-vormingus RFC 5424 ümbrises (UDP või TCP) ning vaikimisi väljalülitatud funktsiooni otlp taga OTLP/HTTP JSON-ekspordile. Edastus töötab töölõimedel ühenduse ja kirjutamise ajapiirangutega, piiratud taasühenduse tagasilöögiga ja loenduriga kshana_trust_syslog_send_failures_total, nii et surnud või kinni jäänud kollektor ei saa reaalajas hindamist peatada ega külmutada lõpp-punkti /metrics; põhjusesildid on piiratud 64 jadaga. Uusi sõltuvusi pole. Näidis-Grafana töölaud on kataloogis deploy/grafana/. Mõõdikute nimed, sildid ja CEF/LEEF väljade vastendus on failis docs/TRUST-TELEMETRY.md. Voo vorming on isoleeritud failis src/telemetry/sample.rs.

Lisatud#

  • Merendusliku usalduse hindamine: reaalajas skoor 0-100 liikuva laeva lahendi kohta, NMEA 0183-st, mida vastuvõtja juba väljastab, koos valikulise väravaga. kshana receiver-trust võtab tabeli [platform] (kind = "static" või "vessel", laeva maksimaalne kiirus, kiirendus ja pöördekiirus, antenni kõrgus veeliinist ja valikuline suunaandur; iga vaikeväärtus dokumenteeritud oma põhjusega). Laeva puhul asendatakse staatiline asendihüppe monitor, mis mõõdab kaugust kalibreerimise keskmisest ja on liikuval laeval vale, põhjuslike liikuva platvormi monitoridega: asendi kinemaatiline kooskõla teatatud kiiruse ja kursiga ning laeva piirangutega, güroskoobi suund võrreldes kursiga maapinna suhtes, kiirusmõõtur võrreldes kiirusega maapinna suhtes, antenni kõrgus võrreldes märgitud kõrgusega veeliinist, C/N0 hajuvuse kokkuvarisemine ja samaaegne tõus kalibreerimise lähtetaseme suhtes ning ajakooskõla (reaalajas režiimis ka selle arvuti kellaga). See loeb ka teatatud autentimisolekut, kogu ulatuses või satelliidi kaupa (ainult teatatud olek: OSNMA krüptograafiat pole). Iga lävi on enne käitust kirjas tabelis [maritime]. Seejärel saab iga epohh skoori vahemikus 0 kuni 100 deterministliku, eelregistreeritud vastendusega (õppimist pole, midagi pole sündmustele sobitatud; kaalud, riba piirid ja tõend on hoitud tabelis [score]), vastendatuna olemasolevatele usaldusolekutele, koos monitoridega, mis vähendasid, ja nende punktidega. Staatilised stsenaariumid on muutumatud ja räsituvad nagu varem. kshana receiver-trust live <session.toml> loeb stdin-i, lisatavat faili, TCP-d või UDP-d ja kirjutab epohhi kohta ühe JSON-rea ning proprietaarse lause $PKSHT; valikuga --gate laseb see voo muutmata läbi, kuni lahend on usaldatud, ja märgib lahendi kehtetuks (GGA kvaliteet 0, RMC ja GLL olek V, GNS ja VTG režiim N), kuni see ei ole. Värav on väljas, kui pole küsitud; --listen tcp:<port> teenindab väravaga voogu suvalisele arvule TCP klientidele (vaikimisi loopback, aeglane klient visatakse välja, mitte ei blokeeri teisi). See on nõuandev tarkvara, mitte tüübikinnitust omav navigatsiooniseade (IEC 61108, IEC 61162); operaator vastutab jätkuvalt. examples/maritime-trust/ on sünteetiline Tallinna–Helsingi logi, kirjutatud ainult tekstina, osaliselt positsiooni triivimisega, mille ajal vastuvõtja jätkab kehtiva lahendi teatamist; selle oodatav väljund on testiga kinnitatud. Juhend: docs/MARITIME-TRUST.md. Kontrollid ei näe spuufijat, kelle lahend on kooskõlas kõigega, mis andmesiinil liigub; juhend ütleb seda.

Häirekaart#

  • kshana interference-map ja kshana route-exposure: avalik pilt sellest, kus õhusõidukid ja laevad teatasid halvenenud navigatsiooniandmetest ning kui palju see marsruuti puudutab. Sisendid on kohalikud CSV-failid, mis on tehtud avatud litsentsiga ADS-B (adsb.lol, ODbL 1,0) ja AIS (NOAA MarineCadastre, Kystverket NLOD 2,0 all) andmetest; iga väljundfail on üks allikas ja üks UTC päev GeoJSON-i, mis kannab meetodit, selle lävesid, andmelitsentsi, viidet ja allika katvuse kallutatust. ADS-B meetod koondab NIC ja NACp fikseeritud ruudustikule ja nimetab lahtri halvenenuks eristuvate õhusõidukite osakaalu põhjal, kaitsetega seadmete vastu, mis kunagi täpsust ei teata, madala kõrguse ja laiaulatuslike põhjuste vastu. AIS meetod käitab viit detektorit: asendid maismaal (kasutaja antud rannajoone vastu), ringjad rajad, ebausutavad hüpped, ebausutavad kiirused ja paljud laevad ühes asendis. Läved on nimetatud meetodiversiooni eelregistreeritud konstandid. Ainult koondandmed: identifikaatorid räsitakse mälus ega kirjutata kunagi ning lahtreid, kus on alla 5 eristuva õhusõiduki või laeva, ei avaldata. Halvenenud lahter ei ole häire tuvastus. Vaikekäsud ei kasuta võrku; valikuline abiline fetch-land --allow-network laadib Natural Earthi maismaapolügoonid alla commitiga kinnitatud aadressilt ja hoiab faili ainult siis, kui selle SHA-256 ühtib. ADS-B sisend on CSV või otse adsb.lol readsb ajaloofailid (uus sõltuvus: flate2 oma puhtalt Rusti taustaga, gzipi jaoks). Mõlemad meetodid on versioon 2: halvenenud või anomaalne otsus vajab vähemalt 5 õhusõidukit või laeva (avaldamise miinimum), iga lahtri arv alla 5 peetakse tagasi väärtusena null ja päev, mille tausta ei saa hinnata, peab oma otsused tagasi. Väljundfailid nimetatakse <source>-<dataset>-<date>.geojson ja neid ei kirjutata kunagi üle; sisend voogedastatakse rida-realt; marsruudi ekspositsioon käsitleb antimeridiaani. Testid kasutavad ainult sünteetilisi andmeid. Vt docs/INTERFERENCE-MAP.md ja litsentsiülevaadet failis docs/data/INTERFERENCE-DATA-SOURCES.md.

Lisatud (koolitusvood)#

  • kshana nmea-scenario: sünteetiline sillal kasutatav NMEA 0183 meeskonna koolituseks GNSS-i segamise ja spuufimise (spoofing) äratundmisel. Stsenaariumi TOML-ist kirjutab see faili või edastab TCP või UDP kaudu (unicast või broadcast; reaalajas, kiirendatult või nii kiiresti kui võimalik) täieliku sillakomplekti GGA, RMC, VTG, GSV, GSA, GNS, ZDA, HDT ja VBW laeva trajektoorile pöördekiiruse, kiirenduse ja hoovuse piirangutega, satelliidigeomeetriaga mootori enda nominaalsetest konstellatsioonidest. Skriptitud sündmused ajateljel: segamine, asendi triivimine (kehtiv lahend, mis kaugeneb), aja spuufimine ja kordusviivitus, igaüks algus- ja taastumisrampidega. Instruktori logi (JSON ja tekst) kirjutab üles, mida ja millal süstiti, tegeliku trajektoori ja teatatu kõrvutamisega. Teegi kataloogis scenarios/training/ (avamere segamine, rannikuäärne triivimine, sadamasse sisenemise aja spuufimine, kombineeritud) on koolitaja märkmed. Väljund on kontrollsummaga kehtiv ja algväärtuse (seed) kohta deterministlik; testid kinnitavad stsenaariumi kohta golden-väljavõtte ja loevad iga lause läbi lugejaga receiver-trust NMEA. Ainult tekst: RF-, IQ- ega lainekujuväljundit pole; vood on mõeldud koolituseks ja testimiseks ning neid ei tohi mitte kunagi anda laeva reaalajas navigatsioonisüsteemidele. Vt docs/NMEA-TRAINING.md.

Merenduse integratsioonid (0.35.0, töövoog B)#

  • Signal K plugin (integrations/signalk/, npm-is avaldamata): käitab käsku kshana receiver-trust live või ühendub sellega (serveri enda NMEA sisend, kohandatud sisendargumendid, JSON-ridade TCP voog või värava voo laused $PKSHT), avaldab usaldusskoori, riba, põhjused, alarmid ja värava oleku aadressi navigation.gnss.kshana.* all (sealhulgas vastuvõtja teatatud asendi kontekstina, mitte kunagi navigation.position) ning tõstab Signal K teate (warn halvenenud korral, alarm mitteusaldatud korral, koos hoidmise, kustutamise ja aegumise läve, kõik konfiguratsiooniskeemis). npm-i sõltuvusi pole. Testitud salvestatud sünteetilise väljundiga.
  • OpenCPN: värava režiimi NMEA-d teenindab otse kshana receiver-trust live --gate --listen tcp:10110 (soovitatav); sõltuvusteta TCP relee (integrations/opencpn/nmea-tcp-relay.mjs) on valikuline alternatiiv. Kummalgi juhul näeb OpenCPN kehtetut lahendit, kui usaldus variseb kokku, ja $PKSHT oma NMEA silumisaknas; testid mängivad sünteetilise väravaga voo uuesti läbi päris TCP sokli ja kontrollivad, mida tarbija saab. Natiivne skooripaneeli plugin (integrations/opencpn/plugin/, plugina API 1,18, CMake) loeb $PKSHT OpenCPN-i enda NMEA voost ja hoiatab mitteusaldatud riba korral; see ehitub, selle loogikat on ühiktestitud ja seda käitati OpenCPN-is 5.8.4 virtuaalekraani all (tõend ja reprodutseerimisskript kataloogis integrations/opencpn/evidence/); seda pole pakendatud pluginahalduri jaoks.
  • Etalonehitus (deploy/reference-build/): üldine osade loend, OS-i seadistus, nõuandva monitori ja valikulise värava systemd-üksused (kontrollib check-units.sh käsuga systemd-analyze verify), konteineri variant, Signal K ühendus.
  • Signal K plugin aktsepteerib reaalajas JSON-skeemi 1,2 (seejärel lisatakse võti position ja võti advisory; tundmatud lisatud võtmed jäetakse tähelepanuta), kontrollitud päris 1,2 väljundil ja päris signalk-serveri vastu.
  • Ülevaatuse parandused: systemd-üksused taaskäivituvad alati ja töötavad liivakastis (ilma shellita, ilma võrguta seal, kus seda pole vaja), logrotate'i lõik, check-units.sh ebaõnnestub iga leiu korral; konteiner käitab värava keskkonnamuutujatest tervisekontrolliga ja räsiga kinnitatud baaspiltidega; Signal K skoori metaandmed, aegunud teade asendatakse, kui andmed jätkuvad, alamprotsesside vead säilitatakse ja tapmised eskaleeruvad, ebaturvalised inputArgs lükatakse tagasi ja teade on aadressil notifications.navigation.gnss.kshana.trust; relee piirab hoitud poolikut rida; $PKSHT parserid lükkavad tagasi skoorid väljaspool vahemikku 0 kuni 100; dokumentatsiooni linkide kontroll; CI töövoog (marine-integrations.yml), mis käitab kõik need, kaasa arvatud päris binaarfaili otsast lõpuni.
  • docs/MARINE-INTEGRATIONS.md. Nõuandev tarkvara, mitte tüübikinnitust omav seade; operaator vastutab jätkuvalt. Ainult tarkvara: miski ei edasta ja ühtki tuvastamise ega valehäire arvu ei väideta.

Lisatud: compliance'i vastendus ja test-bench'i eksport#

  • docs/compliance/ ja kshana compliance-report. Vastendus Kshana väljunditest viiele vastupidavuse raamistikule ja standardile (USA DHS Resilient PNT Conformance Framework v2.0, IMO juhised laevadele, EASA juhised lennunduses, NIS2 artikkel 21, EN 16803, tasuline standard, mida tsiteeritakse osa kaupa ja kataloogitekstis nähtavate üksikute klauslinumbritega), üks tabel raamistiku kohta: viide, mida see meie parafraasis nõuab, väljundid, mis toetavad tõendeid (supports evidence for) selle kohta, ja lünk. Allikaversioonid, URL-id ning mida loeti ja mida mitte, on kirja pandud. kshana compliance-report <result.json>... täidab vastenduse antud käitustest ja märgib iga rea väärtusega evidenced, partly-evidenced, not-evidenced või out-of-scope, Markdownina ja JSON-ina, lünk säilitatud igal real. Sõnastus on „toetab tõendeid (supports evidence for)“; midagi ei hinnata ega kiideta heaks. Testid kasutavad sünteetilisi käitusi ja ebaõnnestuvad, kui kinnitatud tabel koodist lahkneb.
  • kshana bench-export <scenario.toml>. Kirjutab stsenaariumi gnss-ins, jamming või gnss-sim sõiduki liikumise ja sündmused laboratoorse GNSS-simulaatori jaoks: kasutaja liikumise CSV dokumenteeritud tugisüsteemidega ja metaandmete kõrvalfail, NMEA 0183 GGA/RMC, teekonnapunktide tekst ning sündmused CSV-na ja ploki receiver-trust [[events]] kujul (src/interop/testbench.rs). Ainult liikumine ja sündmused: signaali ei kirjutata. Iga fail loetakse tagasi failis tests/interop_testbench.rs ja võrreldakse selle märgitud tolerantsi piires. docs/TEST-BENCH.md annab meetodi ekspordi simulaatori kaudu uuesti esitamiseks ja vastuvõtja logi hindamiseks käsuga kshana receiver-trust.
  • Mis loetakse tõendiks. Tulemus loetakse võimekuse kasuks ainult siis, kui see kannab välju, mida selle liik kirjutab; ainult liigi silt ei loe midagi. Tundmatud liigid, tulemus, mis on vastuolus oma naaberstsenaariumiga, mitte-kuueteistkümnendsüsteemi räsid ja moondunud receiver-trust'i arvud on loetletud kasutamata jäetutena koos põhjusega. Aruanne eskapeerib Markdowni lahtrid ega põhjusta paanikat (panic) mitte-ASCII räsi korral. compliance::run_from_text ja assess_texts võtavad tekste, mitte teid.
  • Test-bench'i eksport. --epoch on vahemikukontrollitud (UtcEpoch::parse_iso); teekonnapunktide fail kontrollib iga intervalli ja käsk ütleb, miks see välja jäetakse; dokumendid märgivad, et gnss-ins suund on keha pöördenurk (yaw), mitte kurss, välja GGA kohatäited ja stsenaariumi enda kõrgusemuutuse. bench-export ja compliance-report on kasutusteksti.
  • fusion::pack::truth_trajectory avab profiili gnss-ins tõelise oleku ajaloo (sama sammutus, mida kasutab liigi enda tõde), ja UtcEpoch saab NMEA kuupäeva ja kellaaja väljad.

Häirekaardi valideerimine#

  • Häirekaardi dekodeerimise semantikat ja geomeetriat kontrollitakse sünteetilistel sisenditel sõltumatute realisatsioonide vastu. NIC ja NACp koodide tähendused sünteetiliste ADS-B kaadrite pyModeS dekodeerimise vastu, AIS-i mittesaadaval väärtused sünteetiliste AIVDM lausete pyais dekodeerimise vastu, ruudustiku lahtri määramine shapely vastu, marsruudi pikkus lahtri oleku kohta shapely ja GeographicLibi vastu ning sisemaa maskeerimine shapely ja pyproj vastu, kõik tolerantsiga, mis fikseeriti enne esimest võrdlust (tests/fixtures/interference_map_ref/PREREGISTRATION.md). See valideerib, kuidas koode ja väljaväärtusi loetakse, ning geomeetriat, mitte seda, et märgitud lahter on häire. Maismaapolügoonide lugeja sulgeb nüüd rõnga, mis ei korda oma esimest tippu ja mille ta varem luges ilma viimase servata. Dokumendid esitavad NACp ja NIC madala täpsuse läved piirina, mida iga kood tähistab (NACp 6 on 556 m EPU piir, NIC 5 1 NM sisalduspiir).

Lisatud (telemeetriavormingute ja tõendipakettide valideerimine)#

  • Välised kontrollid tõendipakettide krüptograafia, paketikontrollija ja telemeetria andmevormingute kohta. RFC 8032 jaotise 7,1 Ed25519 testvektorid (1, 2, 3 ja 1024) ning FIPS 180-4 SHA-256 näited käitatakse läbi paketi enda allkirjastamise, kontrollimise ja räsimise funktsioonide, täpse võrdsuseni. Pythonis kirjutatud kontrollija, mis on tehtud ainult faili docs/EVIDENCE-PACKS.md normatiivse jaotise põhjal (hashlib ja cryptography), on 71 terve ja muudetud paketi puhul Rusti kontrollijaga nõus: otsus, tõrgete hulk, allkirjaotsus ja mõlemad ahela pead. Meie Prometheuse eksponeering loetakse ametliku Pythoni kliendi parseriga ja meie OTLP JSON ametliku opentelemetry-proto sõnumiga, rangelt, ja mõlemad on nõus olekuga, millest need tehti. CEF-il ja LEEF-il pole sõltumatut avatud valideerijat ja need jäävad modelleeritud. docs/EVIDENCE-PACKS.md sai normatiivse paketivormingu ja kontrollimismenetluse, mille põhjal puhtalt (clean-room) kontrollija kirjutati; VerifyReport sai välja signature_valid. Sõltumatud etalonid (sõltumatud etalonid) ja fikstuurid: scripts/gen_ed25519_rfc8032_ref.py, scripts/gen_evidence_pack_ref.py koos scripts/evidence_verify_cleanroom.py, scripts/gen_telemetry_formats_ref.py; testid evidence_crypto_reference, evidence_pack_reference ja telemetry_formats_reference. CI ei vaja Pythonit.

Lisatud (CEF-sündmuste valideerimine)#

  • Telemeetria CEF-sündmused loetakse tagasi õigesti kahe sõltumatu avatud lähtekoodiga parseriga. pycef 1,11 ja Logstashi CEF-kodek (logstash-codec-cef 6.2.7 Logstashis 8.15.3) parsivad 157 CEF-rida (iga riba muutus ja iga epohh kinnitatud telemeetriavoos, pluss vaenulik tekst, mis sisaldab =, kaldkriipse, püstkriipse, reavahetusi, tabulaatoreid ja mitmebaidist teksti) ning taastavad iga päisevälja, tõsiduse, laiendivõtmete täpse hulga ja iga väärtuse täpselt. Logstashi kodek loeb ka nelja rida, mille päisetekst vajab paomärke, mida pycef ei suuda. Lävi registreeriti enne mõlema parseri käitamist (tests/cef_reference.rs); fikstuurid kataloogis tests/fixtures/cef/, sõltumatu etaloni skriptid scripts/gen_cef_ref.py ja scripts/gen_cef_logstash_ref.py; CI ei vaja ei Pythonit ega Logstashi. LEEF-il pole hooldatavat avatud parserit ja see jääb modelleeritud. CEF-sündmused kannavad nüüd usaldusskoori ja epohhi nihke CEF-sõnastiku ujukomakohandatud väljades (cfp1, cfp2) täisarvuväljade cn1 ja cn2 asemel, mis sobisid kummalegi väärtusele halvasti; CEF on selles väljalaskes uus, seega ükski varem tarnitu ei muutu.

Muudetud#

  • MCP: assess_receiver_log aktsepteerib logi kujul text või base64; tööriista sisend on piiratud 4 MiB-ga.
  • Segamise diagramm võtab oma värvid samuti paletist. src/jamming.rs oli ainus moodul, mille Observatory paleti uuendus jättis oma värvidele, kui segaja-Q töö maandus; selle *.chart.svg (stsenaariumid jamming, maritime-strait-jamming ja teised liigist jamming) loeb nüüd faili src/palette.rs ning lubatud loend failis tests/palette_sync.rs on tühi. Ainult värvid ja font: diagrammid jamming-demo ja maritime-strait-jamming on võrdsed oma varem salvestatud renderdustega, kui värv, font-family ja versiooni jalus on normaliseeritud. Ükski joonistatud väärtus ei nihkunud. Salvestatud Studio koopiad kataloogis web/studio/recorded/ salvestati uuesti versioonide 0.33.0 ja 0.34.0 ümberportimisel (ainult versioonitempel): need kannavad endiselt segamise diagrammi vana värvi ja saavad paleti värvi järgmisel ümberportimisel.

Parandatud#

  • Kellaansambli 3-sigma piir katab nüüd flicker-põhja ja filtri tervisekontroll näeb seda. Väärtusega flicker_floor kandis tõeline kell flicker FM-i, kuid kahe oleku filter, mis annab terviklikkuse piiri, mitte, nii et tarnitud stsenaariumi clock-ensemble 3-sigma kate oli 0,41 (klassikaline) ja 0,33 (kvant), ning NIS/NEES kontroll, mis tõmbas oma tõe filtri mudelist, teatas identseid väärtusi põhjaga ja ilma. Piir on nüüd kahe oleku dispersioon pluss viimasest sünkroonimisest kogunenud flicker-faasi täpne dispersioon, arvutatuna samast pangast, mida tõeline kell kasutab; NIS/NEES kontroll tõmbab oma tõe laiendatud mudelist selle pangaga ja käitab sobitatud laiendatud filtrit (ning kahe oleku filter flicker-tõe vastu teatab consistent = false). Väljundi muutus, ainult nullist erineva flicker_floor kellade puhul: integrity stsenaariumil clock-ensemble läheb väärtustelt 0,40866 / 0,33026 väärtustele 0,99970 / 1,0 (klassikaline / kvant) ja filter_health NIS/NEES sisaldavad nüüd flickerit; ajaviga, holdover_s ja timing_p95_ns on muutumatud ning stsenaariumid ilma põhjata on baitideni identsed. Nihkub ka scenarios/orbit-gnss-challenged.toml (orbiidi liik, algväärtus (seed) 7, põhjad 1e-16 / 2e-11): fom.integrity klassikaline 0,7734 väärtusele 1,0 ja kvant 0,9796 väärtusele 1,0, ning filter_health NIS/NEES ja nende ribad muutuvad. Selle kvant filter_health.consistent läheb väärtuselt true väärtusele false: 16 algväärtuse ja 60 sammu flickeri ansambli valimisündmus (NIS 0,8815 riba [0,9125, 1,0914] vastu), mitte defekt. Riba on 95 % riba, nii et umbes 5 % algväärtustest märgib sobitatud filtri konstruktsiooni tõttu (40 selle stsenaariumi uut algväärtust: kvant 1 ja klassikaline 2 märgitud); suuruses 64 korda 200 on sama algväärtus mõlema kella puhul ribas (NIS 0,990 ja 1,001). Teadaolev järeltöö: liigil fusion on sama lõhe (klassikaline terviklikkus 0,80 põhjaga); liik hybrid jääb üle 0,99.

[0.34.1] - 2026-10-10#

Turvalisus#

  • MCP serveri sisend karmistatud. MCP serveri stsenaariumitööriistad aktsepteerivad nüüd ainult sisemist sisu ja keelduvad failiallika väljadest; sisendi suurus on piiratud. Turvateade: GHSA-8wpf-hqg5-6xjr.

[0.34.0] - 2026-10-09#

Labori kordusesitus: jälgimismootor, tuvastusmonitorid ja kampaaniakäitaja GNSS-i IQ salvestuste jaoks, koos nendega kaasnevate ahelakujunduste, C/N0 hinnangute ja skooridega. Tõendusklass: kõik allpool on MODELLED või kontrollitud sisemise kooskõla osas suletud kujude ja algväärtustega (seed) simulatsiooni vastu; ükski neist ei lisa VALIDATED rida ja kontrollimise register on muutumatu (251 rida: 124 valideeritud, 123 modelleeritud, 4 partneri). See on tarkvaraline analüüsikiht: siin ei sünteesita segaja ega spuufija lainekuju ja miski ei edasta.

Lisatud#

  • Labori kordusesitus: testitingimused, kampaaniakäitaja ja hindamine (0.34.0). kshana iq campaign <campaign.toml> mängib uuesti läbi salvestused × esiotsa ahelad × ahelakujundused (kshana.loop-design/1) ja hindab iga lahtrit salvestuse kohta käiva testitingimuste faili (kshana.test-conditions/1, TOML või JSON) vastu. See fail ütleb, mida labor salvestusest teab: oodatavad satelliidid ja iga sündmuse kohta selle tüübi silt, algus ja lõpp, mõjutatud satelliidid ning märgitud J/S või segaja võimsusprofiil. See on ainult metaandmed. Hinded satelliidi kohta, kogu käituse ja sündmuse kohta on:

    • kättesaadavus, aeg lukustuse kaotuseni ja märgitud J/S kaotuse hetkel;
    • uuesti hõivamise aeg, sündmuse lõpust ja kaotusest;
    • mõõdetud C/N0 halvenemine märgitud J/S klassi kohta;
    • valesisselukustumise episoodid lukustatud tunni kohta (jälgija lipp või Doppler tõe kõrvalfaili vastu);
    • PLL-i ja DLL-i diskriminaatori jitter.

    Iga mõõdetud halvenemiskõvera kõrval joonistatakse analüütiline spektraaleraldatuse etalon (jamming::effective_cn0_dbhz tüübi Q-ga) ja märgitakse MODELLED kõikjal, kus see ilmub.

    Lahtrid käivad paralleelselt läbi jälgimissessiooni lukustusoleku olekumasina ja igaüks kirjutatakse aatomiliselt sisuräsi võtme all. Võti katab salvestuse SHA-256, tingimuse, esiotsa, kujunduse, käituse ja hindamise räsid, nõutava data_class (synthetic | client-confidential) ning mootori versiooni. Kui run.epochs on seatud, säilitatakse ka iga lahtri voog kshana.track-epoch/1 ja lukustussündmused, nimetatuna lahtri võtme järgi ja räsitud lahtrisse. cell_key ja report::digest on avalikud, nii et tarbija saab iga võtme ja digesti uuesti tuletada. Seetõttu jätab kordusläbimine valmis lahtrid vahele ning väljundid ei sõltu kunagi töötajate arvust. Käitus kirjutab scorecard.csv/.json, iseseisva report.html ja faili DIGEST. Läbimise/mitteläbimise läved ([scoring.bars], salvestuse kaupa üle kirjutatavad) rakendatakse aruande koostamisel.

    • [scoring] cn0_estimator = "m2m4" | "nwpr" (vaikimisi "m2m4", osa hindamise räsist) valib C/N0, mis on teatatud C/N0 ja halvenemiskõvera taga. Mõlemat hinnangut hinnatakse ja teatatakse alati (kogu käituse ja lähtetaseme mediaanid ning J/S klassi kohta) ning lahter ja tulemuskaart registreerivad hinnangu. NWPR loeb ahela enda jitteri all umbes 8 dB × Bn·T liiga madalaks; M2M4 mitte.

    Samuti uus:

    • kshana iq campaign report <dir> ehitab tulemuskaardid, aruande ja digesti lahtritest uuesti üles;
    • kshana iq conditions <file> kontrollib testitingimuste faili selle skeemi vastu;
    • events_from_sigmf = true impordib SigMF salvestuse annotatsioonid kshana:test_event sündmustena;
    • Python saab funktsioonid iq_test_conditions, iq_campaign ja iq_campaign_report;
    • kshana-mcp saab funktsiooni iq_campaign, mis on inkrementaalne ja jätkatav kutsekohase valimieelarve all, kus iga fail on piiratud töökataloogiga, ning funktsiooni iq_campaign_status.

    Testid: tests/iq_campaign.rs käitab sünteetilise kampaania 3 salvestust × 2 esiotsa × 2 kujundust. Selle stseenid kannavad märgitud C/N0 profiile ja see katab:

    • iga mõõdiku, mida kontrolliti süstitud tõe vastu;
    • jätkamise pärast osalist ühe töötajaga käitust rikutud lahtriga, baitideni identne katkestamata nelja töötajaga käitusega;
    • lahtripõhised epohhifailid;
    • 20 s kolme satelliidi uuesti hõivamise regressioon: kui reacquire on sees, on iga kanal tagasi 2 s jooksul 2 s lõhest; väljalülitatud reacquire tulemus on kinnitatud;
    • läved hinnatud uuesti ilma uuesti käitamata;
    • CLI;
    • vahele jäetud väljalaskerežiimi läbilaske- ja mälukontrollid, kaasa arvatud 4 GB salvestus (5,45× reaalaeg, tippmälu 2 MB üle algse RSS-i; ühe masina mõõtmised, mitte läved).

    Ainult tarkvara: miski ei edasta ja ühtki häire- ega spuufimislainekuju ei sünteesita. Disaini ja valmisehituse märkmed: docs/design/LAB-CAMPAIGN.md.

  • Jälgimismootor labori kordusesituseks (0.34.0: B3.1, B3.2, B3.3, B6.1).

    • Ahelakujundusfailid: kshana.loop-design/1 TOML (docs/design/LOOP-DESIGN-TOML.md; parser iq::track::design). Üks või mitu nimetatud kujundust seavad iga ahelavälja:

      • kandelaine liik (PLL, FLL või FLL-abistatud PLL), järgud ja ribalaiused;
      • PLL/FLL/DLL diskriminaatorid ja kandelaine abistamine;
      • vahe ja integreerimine;
      • lukustusläved ja C/N0 aknad ning bitisünkroon;
      • lukustusoleku olekumasin;
      • üleandmise hõivamine ("auto" või selgesõnaline).

      Kujundused võivad üksteist extends. Tundmatud võtmed lükatakse tagasi. Igal lahendatud kujundusel on SHA-256 räsi kanoonilisel JSON-kujul (võtmed sorteeritud igal tasemel, fikseeritud arvuvorming), nii et räsi ei sõltu väljade järjekorrast; iga väljund registreerib selle. Liidesed:

      • kshana iq track --design <file> [--design-name], kus selgesõnalised lipud tühistavad kujunduse ja registreeritakse;
      • kshana iq sweep --design <file>, mis käitab iga failis oleva kujunduse;
      • Python iq_track(design=, design_name=, reacquire=), iq_loop_designs;
      • MCP iq_track design/design_name.
    • M2M4 C/N0 (EpochOutput.cn0_m2m4_dbhz, track-epoch veerg cn0_m2m4_dbhz pärast cn0_beaulieu_dbhz; Pythoni epohhisõnastikud). Teise ja neljanda momendi hinnang samade akende üle nagu NWPR, ainult prompt-võimsusest: NWPR loeb ahela enda kandelaine jitteri all liiga madalaks (umbes 8 dB × Bn_PLL·T) ja M2M4 mitte. GPS L2C CM puhul (20 ms, nominaalne 40 dB-Hz, PLL 1 kuni 10 Hz) loeb see 39,93 dB-Hz igal ribalaiusel, kui NWPR langeb väärtuselt 39,55 väärtusele 38,22; L1 C/A puhul 45 dB-Hz juures loeb see 45,34. NWPR ja iga muu väljund on muutumatud (bitthaaval kinnitus). Binaarkirje jääb 184 baiti (väärtus võtab reserveeritud ujuki ja lipubiti 6).

    • Täiendavad korrelaatori kraanid (multikorrelaator / SQM). [design.integration] extra_taps_chips = [..] (nihked chipides promptist, positiivne vara; kuni 16, igaüks piirides ±2) korreleerib täiendavaid koopiaid E/P/L kõrval ja tagastab need kui EpochOutput.extra ((offset, value) kujunduse järjekorras). Ahelad ei kasuta neid kunagi. Võti jäetakse tühjana kanoonilisest JSON-ist välja, nii et vaikekujunduse räsi ja iga kraanideta väljund on muutumatud (kshana.track-epoch/1 jääb; kraanideta CSV/JSONL/binaar on bitthaaval identsed). Kraanidega: CSV/JSONL veerud ja binaarkirje 184 + 16 × taps baiti, mille päis kannab extra_taps_chips, nii et vana lugeja keeldub failist, mitte ei loe seda valesti. --extra-taps (CLI), extra_taps (Python) ja extra_taps_chips (MCP iq_track). Ühe käituse kujundused peavad kraanide osas ühtima.

    • Paralleelsed kanalid (iq track / iq sweep --threads <N|auto>; Rust TrackSession::with_threads). Iga tüki kanalid käivad kuni N lõimel (std::thread::scope; wasm32 jääb jadaks). Kanali korrelatsioon ja lukustusoleku olekumasin puudutavad ainult seda kanalit; selle epohhid ja sündmused puhverdatakse ning kirjutatakse sinkidesse kanalite järjekorras, nii et väljund (CSV, JSONL, binaar, sündmused, kokkuvõte) on baitideni identne jadakäitusega mis tahes N korral. Vaikeväärtus jääb 1 lõimeks. Mõõdetud 12 kanaliga, 4 s, 4,092 MHz salvestusel 4 tuumal: 19,5 s jadana, 11,5 s 2 lõimega, 6,3 s 4 lõimega (3,1×; esialgne hõivamine on jada).

    • Hõivamispinna eksport (kshana.acq-surface/1; iq::acq_surface, docs/design/ACQ-SURFACE.md). iq acquire --surface <path> (üks PRN; CSV, JSON või binaar), Python iq_acq_surface ja MCP iq_acquire surface_out kirjutavad kogu Doppleri × koodifaasi korrelatsioonivõimsuse pinna, mille otsing arvutab (selle lahtrid on käsu acquire omad, bitthaaval), koos tipu ja kahe peene Doppleri täpsustusega: paraboolne hinnang ja 1/16 vahemiku peen otsing (≈5 Hz 4 ms koherentsel, 167 Hz vahemike vastu). acquire ise ja iga vaikeväärtus on muutumatud.

    • Voogedastatav epohhiväljund (kshana.track-epoch/1; iq::track::sink). Iga ahela uuendus kannab:

      • varajase/prompt/hilise korrelaatorid;
      • kõik kolm diskriminaatori väljundit;
      • PLL/FLL/DLL NCO olekud ja kandelaine faasi;
      • PLI ja lukustuslipud;
      • mõlemad C/N0 hinnangud ja bitid;
      • lukustusoleku.

      See kirjutatakse selle toimudes, CSV-na, JSON Linesina või versioonitud binaarvormis, koos lugejatega Rustis (BinaryEpochReader) ja Pythonis (iq_read_epochs).

      • iq track saab valikud --epochs, --events ja --summary (kshana.track-summary/1) ning iq sweep saab valikud --epochs ja --events. MCP iq_track saab valikud epochs_out/events_out ja ehitab oma vastuse piiratud mäluga kokkuvõttest.
      • Käituse hunnik ei kasva enam salvestuse pikkusega: tests/iq_track_memory.rs mõõdab seda loendava allokaatoriga (6× pikkus, sama tipp 64 KiB piires), kontrolliga, mis näitab, et mälusisene tee kasvab.
      • Voogedastatud väljund on bitthaaval identne mälusisese kordusesitusega.
    • Lukustusoleku olekumasin (iq::track::lock, TrackSession): sisselaskmine → lukustatud → kaotatud → uuesti hõivamine → sisselaskmine või taandatud, kui kaotus kestab kauem kui reacq_window_s (vaikimisi 30 s). Ebaõnnestunud otsinguid korratakse iga reacq_interval_s järel (0,1 s), ühtlase vahega, nii et kordusgraafik lisab mõõdetud uuesti hõivamise ajale kõige rohkem 0,1 s. Valikuline tagasilöök (reacq_max_interval_s üle reacq_interval_s) on vaikimisi väljas ja max_reacq_attempts on valikuline ülempiir (0, ehk puudub, vaikimisi). 2 s katkestus kolmel PRN-il sagedusel 4,092 MS/s lõpeb nüüd sellega, et iga kanal on uuesti hõivatud ja lukustatud. 3 katse eelarve korral taandati iga kanal 0,2 s jooksul kaotusest.

      • Läved (loss_dwell_s, pull_in_max_s, uuesti hõivamise Doppleri aken) tulevad kujundusest. Iga üleminek on sündmus koos oma põhjusega.
      • Valesisselukustumise kontroll otsib jälgitud Dopplerit selle ±1/(2T) FLL/PLL aliase vastu. See tabab valesisselukustumise, mida PR #38 mõõtis (−2400 Hz jälgitud 500 Hz kaugusel). Uuesti hõivamise sisselülitatuna lõpeb kanal lukustatuna süstitud Doppleril.
      • 0,8 s signaalilõhe kuulutatakse kaotatuks ja hõivatakse uuesti 0,3 s jooksul signaali naasmisest.
      • --summary final_state (ja tabeli veerg) on olek pärast viimast üleminekut, nii et kanal, mis taandati pärast oma viimast ahelauuendust, loeb RETIRED.
      • FLL-i abistamine ainult sisselaskmise ajal ([design.carrier] fll_assist = "pull-in", vaikimisi; "always" säilitab varasema käitumise bitthaaval). FLL annab PLL-ile üle, kui silutud PLI on hoidnud tasemel fll_off_pli (0,8) või sellest kõrgemal ajal fll_gate_dwell_s (0,1 s), ja naaseb, kui see langeb alla fll_on_pli (0,6). Sisselülitatuna murdis 10 Hz FLL-i tee faasilukustuse puhastel signaalidel alla umbes 38 dB-Hz: sagedusel 35 dB-Hz oli faasilukustuse osakaal 10–16 %, tõelise faasiveaga 38–41°. Väravaga hoiab vaikeväärtus 100 % sagedusel 35 dB-Hz veaga 4,5°, sama mis ainult PLL. Sisselaskmine 100 Hz üleandmisveast on muutumatu. Tõend eelregistreeritud lävedega: docs/design/evidence/carrier-lock/. Vaikeahelad ei ole seega bitthaaval samad vaikekujunduse varasemate käitustega. Nende taastootmiseks kasutage fll_assist = "always". Teadaolev piir: sagedusel 35 dB-Hz tuleb üleandmine 1,9–2,6 s pärast jälgimise algust ja sagedusel 33 dB-Hz hoiab 10 Hz FLL PLI üleandmislävest madalamal, nii et sisselaskmine ei lõpe kunagi.
      • Uued ahelakujunduse võtmed ja API, loetletuna:
        • [design.carrier]: fll_assist, fll_off_pli, fll_on_pli, fll_gate_dwell_s;
        • [design.lock]: reacq_window_s, reacq_interval_s, reacq_max_interval_s, kusjuures max_reacq_attempts on muudetud vaikeväärtuselt 3 valikuliseks ülempiiriks (vaikimisi 0);
        • Rust: LoopConfig.fll_assist (FllAssist, FllGate), LoopCore::set_fll_enabled, EpochOutput.fll_active, ChannelSummary.final_state.
      • Kujunduse räsi on kanoonilise JSON-kuju kohta ja sisseehitatud vaikekujunduse räsi on 33261cd171a53803a6c262686e878e01f37d902a93d5918c20a44297b8ef8e80 (kinnitatud testiga).
      • Väljundi ühilduvuse märkused:
        • tabelil iq track on lõpus veerg final_state;
        • käsu iq sweep CSV-l on lõpus veerg design_hash ja selle JSON-il on design_hash ning warnings;
        • pühkimise mean_cn0_dbhz on nüüd keskmine kõigi uuenduste üle, millel on NWPR hinnang (piiratud mäluga kokkuvõte), mitte enam käituse teise poole üle.
      • Uuesti hõivamine on sisseehitatud vaikimisi väljas, kus olekumasin ainult jälgib ja ahelad töötavad bitthaaval nii, nagu ilma selleta. (Vaikeahelad ise siiski muutusid: vt ülal FLL-i abistamist.) Lülitage see sisse kujunduse kaupa ([design.lock] reacquire = true), valikuga --reacquire või valikuga reacquire=True.
      • Hoiatus commensurate_sampling: kui fs on 1e-6 piires chipikiiruse poole kordsest (iq::track::commensurate_samples_per_chip), hoiatavad iq track/iq sweep (väljund, --summary, pühkimise JSON), MCP vastus iq_track ja Pythoni tulemus iq_track, et koodiahela jitter ja nihe ei ole representatiivsed. Algpõhjus on dokumenteeritud eelregistreeritud lävedega failis docs/design/evidence/dll-jitter/. Täpselt 2 valimi korral chipi kohta 0.5-chipi vahega on DLL-i S-kõver üks aste ja ahel väriseb: ≈ 0,09 chipi RMS koodiviga (≈ 26 m) sagedusel 45 dB-Hz, võrreldes ≈ 0,004 chipiga mittekommensureeruval kiirusel. ~2 dB madal NWPR C/N0 sellel kiirusel on sama põhjusega. Täpselt 0 Hz koodi Doppleri ja 4 valimi korral chipi kohta ei ületa kood kunagi ±0.21-chipi surnud tsooni, nii et koodifaasi nihe kuni umbes 0,2 chipi võib püsida ilma jitteris ilmumata (mõõdetud: 0.5-chipi vahe annab 2,0× kontrolli koodivea +0,011 chipi keskmisega; 0.25-chipi vahe annab +0,125 chipi); hoiatus katab kiiruse.
      • Teadaolev piir: vaikekujundus ei anna FLL→PLL üle alla umbes 35 dB-Hz (~35 dB-Hz sisselaskmise põhi; vt ülal FLL-i abistamist ja docs/design/evidence/carrier-lock/).
      • Valesisselukustumise või uuesti hõivamise otsing, mida ei saa käitada (kiirus ilma täisarvu valimiteta koodiperioodi kohta), ei peata enam jälgimist.
      • Testid: tests/iq_track_engine.rs, tests/iq_cli.rs, iq::track::design::tests, tests/python ja MCP IQ edasi-tagasi tsükkel.
  • C/N0 profiilid sünteetilistes stseenides (0.34.0). iq::channel::cn0_profile ajastab Kshana enda stseenides satelliidi kaupa ajas muutuva C/N0, dB nihetena stseeni C/N0 suhtes. Kujud: aste, tõus, tükiti lineaarne ja algväärtusega (seed) skintillatsioonitaolised Rice'i summutused märgitud S4 ja dekorrelatsiooniajaga. Need rakendatakse olemasoleva stseenikanali konksu kaudu (Cn0ProfileChannel, komponeerudes ionosfääri, troposfääri, skintillatsiooni ja mitmeteelevi mõjudega), stseenituuma muutmata. Tõe kõrvalfaili cn0_dbhz järgib profiili.

    • Liidesed: kshana iq scene … --cn0-profile <toml> ja kshana.iq_scene(…, cn0_profile="<toml>").
    • Milleks see on: ahelaid, monitore ja kampaania hindamist saab stressitestida teadaoleva tõe vastu. See muudab ainult seaduslike signaalide tugevust.
    • Kontrollid (tests/iq_cn0_profile.rs). Läved: summutuse keskmine intensiivsus 5 % piires väärtusest 1, S4 8 % piires sihtväärtusest (S4 = 0,3, 0,7 ja 1 korral), intensiivsuse korrelatsioon üle 0,9 kohal 0,05 τ ja alla 0,05 kohal 5 τ; tõde täpselt märgitud C/N0 pluss profiil; jälgitud NWPR C/N0 langus 0,7 dB piires 6 dB astmest. Mõõdetud: S4 1,3 % piires sihtväärtusest ja jälgitud langus 6,26 dB.
  • IQ-tee tuvastusmonitorid (0.34.0 „Labori kordusesitus“). Uus moodul iq::monitor, käsk kshana iq monitor ja seos kshana.iq_monitor(path, ...). Need jälgivad salvestust ja teatavad ajaread ning märgitud sündmused (algus-, häire- ja lõpuajad, tipp, lävi). Need ainult tuvastavad ja mõõdavad; siin ei genereerita signaali.

    • Koguvõimsus / AGC: ploki võimsus ja võimendus, mille ideaalne AGC rakendaks; märgib tõusud ja langused.
    • Eelkorrelatsiooni spekter: Welchi PSD ploki kohta õpitud lähtetaseme vastu. Ülemäära lävi tuleb valehäire sihtmärgist. Samuti kompleksne kurtoos ja impulsidetektor. Impulsidetektor loeb igas plokis läve ületavad valimid ja tõstab sündmuse, kui selle arvu täpne binoomjaotuse ülemine saba on väiksem kui pulse_pfa (vaikimisi 1e-4 ploki kohta), mitte siis, kui z-skoor ületab piiri: lühikeste plokkide väikeste oodatavate arvude juures on üksik valim juba mitu sigmat.
    • Kanali kohta C/N0: kaks ühepoolset CUSUM-i muutusedetektorit (langus ja tõus), mida toidavad sõltumatud hinnangud (samm on seatud ahela C/N0 aknast).
    • SQM korrelaatoritest: delta (I_E − I_L)/I_P ja suhe (I_E + I_L)/(2 I_P), pluss asümmeetriatestid lisakorrelaatoritest, kui kanal neid annab.
    • Lukustusnäidiku jadad: PLI ja sagedusluku näidik järjestikustest promptidest, toorsignaalidena. Lukustuse ja lukustuse kaotuse otsused jäävad jälgimismootori lukustusoleku olekumasinale.

    Üks voogedastav läbimine (iq::monitor::run::run_monitors) käitab kõik, TOML/JSON seadistusfailiga (MonitorConfig); kampaaniakäitaja kasutab sama sisenemispunkti. Kõik MODELLED. Iga statistikut kontrollitakse selle suletud kuju vastu algväärtustega (seed) simulatsiooniga (tests/iq_monitor.rs):

    • ploki võimsuse ületused Gamma saba vastu;
    • kurtoosi keskmine 2 ja hajuvus 2/√N;
    • impulsi osakaal e^{−t};
    • CUSUM-i jooksupikkused Siegmundi lähenduse vastu (mõõdetud 330 ja 8,46 valimit vastu 338 ja 8,34);
    • faasilukustuse näidik Riceri faasi keskmise vastu;
    • jälgitud C/A signaalil on SQM delta ja suhte hajuvused umbes 6 % esimest järku suletud kujudest (mõõdetud 5,97 %; testi lävi 12 %).

    Spektraalse ülemäära valehäire valem on lähendus; mõõdetud määr oli 1,3× valem. Otsast lõpuni märgivad monitorid:

    • 6 dB C/N0 astet (muutuse aeg ühe hinnangu piires);
    • salvestuse keskel ilmuvat peegeldunud teed (suhtetest);
    • signaalikatkestust (PLI langeb selle ajal väärtuselt 0,999 väärtusele −0,3 ja FLI väärtuselt 0,93 väärtusele 0,03);
    • kitsaribalist tooni ja hõredaid suure amplituudiga valimeid (spektraal-, impulsi- ja kurtoositestid). Need on üldised DSP testsisendid, mitte häiremudelid.

Muudetud#

  • iq track/iq sweep voogedastavad läbi uue sessiooni (vt Lisatud).
    • --csv säilitab oma versiooni 0,32 veerud, kuid on nüüd voogedastatav, nii et mitme kanali read põimuvad ajajärjekorras, mitte ei ole kanalite kaupa grupeeritud. --json säilitab oma versiooni 0,32 kuju ja hoiab endiselt iga epohhi mälus: pikkade salvestuste jaoks kasutage --epochs.
    • iq sweep mõõdab jitterit käituse kestuse teise poole uuenduste üle (varem uuenduste arvu teine pool) ja selle CSV/JSON saavad veeru design_hash.
    • Jälgimistabel saab veeru final_state.
    • Kasutustekst ei väida enam, et iq track võtab esiotsa lipud; neid rakendab ainult iq acquire.
    • Pythoni iq_track väljad acq_noncoherent ja doppler_max on nüüd vaikimisi None (kujunduse väärtused, sisseehitatud kujunduses 1 ja 5000 Hz). Selle epohhid saavad varajase/hilise korrelaatorid, carrier_phase_cycles, bit_edge, bit ja state, ning tulemus saab design ja events.

Parandatud#

  • Vaikehõivamise samm ei anna enam Galileo E1 jälgimisele jääki, mida FLL ei suuda sisse lasta. Samm 2 / (3 · N · T_code) jätab üleandmisel kuni 1 / (3 · N · T_code) Doppleri viga, kuid vaike-kahekvadrandiline FLL laseb sisse ainult 1 / (4 T_track). Iga 4 ms või pikema koodi puhul (N = 1), kaasa arvatud Galileo E1-B ja E1-C, oli jääk (83,3 Hz sagedusel 4 ms) väljaspool 62,5 Hz sisselaskmist ja jälgimine lukustus valesti +125 Hz juures, faasilukustuse näidikuga 0,97, mis seda varjas. Vaikesamm on nüüd piiratud ka väärtusega 0.2 / T_track (kshana::iq::acq::default_step_hz), 0,8 sisselaskmisest, nii et üleandmine jääb selle sisse ka siis, kui naaberlahter võidab. (0,4 proovitud esmalt: see lukustus valesti 1 käitust 42-st E1-B-l ja 1 ms koherentne GPS L1 C/A otsing valis lahtri 350 Hz kaugusel ja lukustus +500 Hz juures; 0,25 ja 0,2 ei andnud samades käitustes ühtegi.) Hind: Galileo E1-B/E1-C lähevad 166,7 Hz lahtritelt 50 Hz lahtritele, 201 lahtrit vahemikus ±5 kHz 61 asemel; 1 ms koodid (166,7 Hz, N = 4) on muutumatud. "auto" ahelakujunduses tähendab seda; selgesõnaline doppler_step_hz või --doppler-step kasutatakse nii, nagu kirjutatud, ja iq acquire (ilma jälgimise üleandmiseta) säilitab õpikusammu. Epohhipäis ja --summary registreerivad nüüd iga kanali lahendatud sammu ja ahela ribalaiused (resolved). Vaikekujunduse räsi on muutumatu. Väljundi muutus: 4 ms ja pikemate koodide tuvastused võivad sattuda teistesse Doppleri lahtritesse.

  • GPS L2C CM (20 ms ahelauuendus) hoiab lukku vaikekujundusega. Vaike-15 Hz PLL-il ja 10 Hz FLL-il on Bn · T väärtused 0,3 ja 0,2 kohal T = 20 ms ning ahel kaotas lukustuse isegi täiuslikult algusest (PLI −0,08, M2M4 15,8 dB-Hz). Uus kujunduse võti carrier.bn_t_max (vaikimisi 0,1) piirab PLL-i ja FLL-i müra ribalaiused väärtusele bn_t_max / T, kui ahela uuendusaeg on pikem kui 4 ms (Design::loop_config_for): 5 Hz ja 5 Hz sagedusel 20 ms, 10 Hz ja 10 Hz BeiDou B1C 10 ms juures; 1 ms ja 4 ms koodid säilitavad 15 ja 10 Hz. See kehtib ka selgesõnaliste ribalaiuste kohta; bn_t_max = 0 lülitab selle välja. Võti jäetakse vaikeväärtuse korral kanoonilisest kujust välja, nii et vaikeräsi on muutumatu; kujundusel, mis seab mis tahes muu väärtuse, on teistsugune räsi. Sagedusel 45 dB-Hz annab L2C CM nüüd PLI 0,996, Doppleri vea 0,00 Hz ja M2M4 42,71 dB-Hz. Teadaolev lahtine punkt: NWPR C/N0 loeb seal 1,76 dB madalaks (ja 2,45 dB madalaks B1C-l 10 ms juures), nii et maatriksi T5 L2C jaoks jääb ignored-tähelepanekuks.

  • docs/assets/clock-ensemble-band.svg loodud uuesti: kinnitatud joonis oli oma stsenaariumi suhtes aegunud (andmemuutus, mitte ümbervärvimine). Diagramm joonistati 2026-06-02 failist scenarios/clock-ensemble.toml; kaks päeva hiljem seadis 67fed19e selles stsenaariumis flicker-FM põhjad (kvant flicker_floor = 1e-16, CSAC flicker_floor = 2e-11) ja joonist ei joonistatud kunagi uuesti. See näitas põhjaeelset käitust: y-telg 0 kuni 47 ns, CSAC käitusekohane katkestuse p95 10,5 kuni 47,6 ns (keskmine 25,2 ns), klassikaline holdover 4050 s keskmiselt. Tarnitud stsenaarium (ja nagu õpetus ja CLI kokkuvõte juba ütlevad) annab y-telje 0 kuni 407 ns, CSAC käitusekohane p95 40,8 kuni 374,0 ns (keskmine 167,0 ns), klassikaline holdover 844 s [220 kuni 2130 s]; 20 ns spetsifikatsioonijoon asub samal 20 ns kohal umbes üheksa korda kõrgemal teljel. Mootor on muutumatu: tänane mootor juunikuu stsenaariumifailil taastoodab vana joonise telje täpselt. Joonisele README-st ega dokumentidest ei viidata.

Teadaolevad piirangud#

  • NWPR C/N0 loeb kõrge prompti kohta C/N0·T korral madalaks ja BOC(1 1) sagedusel 5 MS/s kaotab umbes 1 dB. NWPR on ideaalsetel promptidel nihketa, kuid ahela enda PLL-i jitter maksab umbes sobitatud 8 dB × Bn·T (üks stseen, neli punkti: −0.24/−0.44/−0.77/−1,58 dB sagedustel 1/2.5/5/10 Hz ja 20 ms; umbes −1 dB vaikeväärtusel bn_t_max = 0.1); M2M4 on tundetu. BeiDou B1C andmed sagedusel 5 MS/s kaotavad ka umbes 1 dB prompti võimsust ribapiirangu tõttu (kasutage 10 MS/s või rohkem). Kumbki ei ole hinnangu defekt; signaalimaatriksi T5 read GPS L2C ja BeiDou B1C jaoks jäävad nende põhjustega ignored-tähelepanekuteks.

[0.33.1] - 2026-10-08#

Turvalisus#

  • Diagrammi teksti ja Studio diagrammi vastuvõtmise karmistamine. Tekst, mille stsenaarium kannab loodud diagrammi, eskapeeritakse nüüd järjepidevalt ühe jagatud rutiiniga ning Studio võtab diagrammist vastu ainult joonistusmärgistuse. Studio aadresseerimisparameetrid, liigipõhised otsingud ja stsenaariumipäringud on piiratud teadaolevate väärtustega. Kaasapakitud diagrammid, salvestatud tulemused ja avaldatud arvud on muutumatud. Uuendamist soovitatakse kõigile, kes avavad Studios stsenaariumifaile ebausaldusväärsetest allikatest või manustavad loodud diagramme veebilehtedele. Turvateade: GHSA-h25h-cg9f-v2cg.

[0.33.0] - 2026-10-08#

Dokumentatsioon#

  • IQ-kihi segamise ja spuufimise ulatus, öeldud täpselt. Allolevad versioonide 0.31.0 ja 0.32.0 kirjed ütlevad, et IQ-kiht lisab „ei mingit segamise ega spuufimise lainekuju sünteesi“. See kehtib IQ-kihi enda kohta (iq::scene genereerib ainult seaduslikke GNSS-i signaale), kuid see kõlas väitena kogu mootori kohta, ja see ei ole selline: alates versioonist 0.29.0 kirjutab liigi spectrum jaotis [iq] SigMF hetktõmmise oma analüütilisest mudelist koos seadistatud segajatega (müratüüpi segajad lahtri kaupa, toonid ja siristused lainekujudena), ja spoof_capture summeerib autentse ja spuufija koopiasignaali mälus, et testida ahela püüdmist (komposiiti ei kirjutata kunagi välja). Mootoril on olnud ka tarkvaraline GNSS-vastuvõtja alates versioonist 0.20.0 (sdr: hõivamine ja jälgimine; alates versioonist 0.31.0 ka iq::acq ja iq::track). Miski Kshanas ei edasta ega juhi raadioriistvara. README olekurida, docs/POSITIONING.md, docs/SPECTRUM.md ja IQ disainimärkmed ütlevad seda nüüd; avaldatud kirjed on jäetud sellisena, nagu need avaldati. Käitumine ei muutu.
  • Teadaolev piirang: kommensureeruv diskreetimine. Valimikiiruse korral, mis on chipikiiruse täis- või poolkordne, asuvad valimid igas chipis samadel chipifaasidel ja koodidiskriminaator muutub trepiks. Sünteetilisel GPS L1 C/A signaalil sagedusel 45 dB-Hz 0.5-chipi vahega annab 2,046 MHz (2 valimit/chip) ≈ 0,09 chipi (≈ 26 m) RMS koodivea ja −0,09 chipi nihke, võrreldes ≈ 0,003 chipiga mittekommensureeruval kiirusel. NWPR C/N0 loeb seal ≈ 2,4 dB madalaks. Sagedusel 4,092 MHz sõltub see vahest ja koodi Dopplerist. Vahe 0,5 chipi korral on see kahjutu 1500 Hz Doppleril, kuid 2× 0,011 chipi nihkega 0 Hz juures ning vahe 0,25 või 0,1 chipi korral on see 8–10× koodiviga. Kandelaine jälgimist see ei mõjuta. Mõõtmised on failis docs/design/iq-notes/receiver.md.

Lisatud#

  • GNSS-i IQ-kiht MCP serveris (Phase B.1). kshana-mcp saab kuus tööriista, mis juhivad kihti kshana iq agendi poolt: iq_signals (aktsepteeritud signaalinimed ja IQ seadistus), iq_info (kirjelda salvestust), iq_scene (genereeri märgitud profiiliga või edastatud efemeriidiga stseen, valikulise signaalitaseme kanaliga), iq_acquire (FFT hõivamine, valikuliselt esiotsa etappide taga), iq_track (hõiva, siis DLL/PLL/FLL pank) ja iq_frontend (ribafilter, sälk, blankeerimine, väljalõikamine, AGC, kvantiseerija). IQ valimid ei ületa kunagi protokolli: iga tööriist võtab failiteed ühes töökataloogis, mille seab KSHANA_MCP_IQ_DIR (seadmata jätmine jätab IQ failitööriistad välja ja kõik muud tööriistad mõjutamata), keeldub teedest, mis lahenevad väljapoole seda, ja juba olemasolevatest väljunditest, kui pole seatud overwrite, jõustab enne mis tahes tööd kutsekohase valimieelarve (KSHANA_MCP_IQ_MAX_SAMPLES, vaikimisi 50 000 000), keeldub tundmatutest argumentidest ja vastab kompaktse JSON-kokkuvõttega (tuvastused, C/N0, lukustuse olek ja iga kirjutatud fail oma baitide arvuga). Epohhipõhine väljund läheb ainult failidesse, mida kutsuja nimetab. Tööriistad käitavad sama kooditeed mis CLI uue avaliku õmbluse kshana::iq::cli::execute kaudu, mis tagastab CLI teate selle trükkimise asemel (stdout on MCP JSON-RPC kanal); iq::cli::build_code ja iq::cli::signal_names on nüüd samuti avalikud. Ainult tarkvaraline ja lisandav: IQ-kiht ei lisa segamise ega spuufija sünteesi, miski ei edastata kunagi ja uusi sõltuvusi pole. server.json deklareerib need kaks keskkonnamuutujat. Edasi-tagasi testid failis mcp/kshana-mcp/tests/iq_round_trip.rs genereerivad lühikese kahe satelliidi stseeni ja kontrollivad hõivamist stseeni enda tõe kõrvalfaili vastu, jälgimise lukustust ja C/N0, esiotsa, SigMF väljundit, eelarvet, tee piiramist ja keelatud olekut.

  • GNSS-i IQ-kiht valideerimisregistris. Eelregistreeritud ristkontroll gps-sdr-simi vastu (sõltumatu GPS L1 C/A baasribageneraator, MIT, commit 28ca29a6) on nüüd alati sees oleva testikomplekti osa (tests/iq_gpssdrsim_cross_generator.rs). Selle kinnitatud võrdlusväljund (tests/fixtures/iq_gpssdrsim_cross_generator/: 20 ms gps-sdr-simi enda 8-bitist I/Q-d, selle kanalite loend ja selle taga olev kanali olek samast ehitusest linkitud harnessist) luuakse uuesti skriptiga scripts/gen_iq_gpssdrsim_ref.sh. Testi ajal ei vaja miski võrku ega välist tööriista. Lisatud on kaks registririda (251 rida: 124 valideeritud, 123 modelleeritud, 4 partneri):

    • GNSS-i IQ stseeni signaali geomeetria sõltumatu baasribageneraatori vastu: valideeritud. Stseeni tõde (nähtav hulk, pseudovahemaa, koodifaas, Doppler, vaatenurgad) edastatud efemeriidiga stseeni jaoks ühtib gps-sdr-simi kanali olekuga kõigil 11 kanalil: halvim 1,6 mm, 5.5e-6 chipi, 7.4e-5 Hz, 4e-9 kraadi, lävede 0,05 m, 2e-4 chipi, 0,02 Hz ja 1e-4 kraadi vastu, mis fikseeriti enne käitust.
    • GNSS-i IQ hõivamine sõltumatult genereeritud I/Q valimitel: modelleeritud, koos tähelepanekuga. iq::acq leiab iga simuleeritud satelliidi gps-sdr-simi valimitest registreeritud piirides (koodifaas 0,195 chipi piires, Doppler 72 Hz piires). Registreeritud lävi „ühtegi teist PRN-i ei tuvastatud“ siiski ebaõnnestub: gps-sdr-simi müravabal väljundil ületavad Gaussi müra läve teiste satelliitide ristkorrelatsioon kõigi 21 puuduva PRN-i jaoks. Range test säilitatakse, märgitud ignored koos tähelepanekuga, ja kinnitatud test registreerib selle. Mootori koodi ega avalikku API-t ei muudeta. Valimi I/Q-d ei võrrelda valimi kaupa: gps-sdr-simi täisarvuline siinustabel, võimendused, nullist algav kandelaine faas ja kärbitud LNAV väljad ei ole suurused, milles vastuvõtja peab nõustuma. Võrdlus tehakse vaadeldavatel suurustel, mida vastuvõtja mõõdab.

Muudetud#

  • iq track annab vaikimisi üle ≈4 ms hõivamisest (käitumise muutus). Hõivamine, mis lähtestab iga jälgimiskanali, integreerib nüüd ceil(4 ms / T_code) koodiperioodi koherentselt ühe asemel, kus T_code on koodi täisperiood (kihilise koodi puhul primaar- korda sekundaarpikkus, ühik, mille üle hõivamine integreerib). Kihita 1 ms koodid (GPS L1 C/A, BeiDou B1I, GLONASS L1OF) otsivad nüüd 4 perioodi (4 ms), nii et vaike-Doppleri samm 2 / (3 · N · T_code) on ~167 Hz ~667 Hz asemel. Iga kood, mille täisperiood on juba 4 ms või pikem, säilitab 1 perioodi: Galileo E1-B (4 ms), BeiDou B1C (10 ms) ning kihilised GPS L5-I/L5-Q, Galileo E5a-I/E5a-Q ja E1-C (10 kuni 100 ms koos nende kattekoodidega) ja GPS L2C. Iga signaal integreerib seega vähemalt ~4 ms. Ühe perioodi otsing võis anda kanali üle kuni ~333 Hz kõrvalekaldega, FLL-i sisselaskmisest väljaspool, ja see jälgis siis valesisselukustumist ~500 Hz eemal, teatades samal ajal puhtast jälgimisest. Algväärtustega (seed) pühkimisel 180 GPS L1 C/A kanalil (Doppler ±5 kHz üle, 38 kuni 47 dB-Hz, pooltel navigatsiooniandmed; docs/design/evidence/iq-track-acq-default/, uuesti käitatav) langevad valesisselukustumised 27-lt 180-st 1-ni 180-st ja vahelejäänud hõivamised 102-lt 11-ni, ~40 ms võrra pikema otsinguga PRN-i kohta GPS L1-l (11 → 52 ms). Üks allesjäänud valesisselukustumine on sagedusel 38 dB-Hz, 36 Hz eemal. Kõik liidesed on ühel meelel: kshana iq track ja kshana iq sweep (--acq-coherent), Python kshana.iq_track (acq_coherent=None on nüüd auto; stub uuendatud) ja MCP tööriist iq_track. Kasutajad, kes toetusid vanale vaikeväärtusele, saavad anda acq_coherent=1 (--acq-coherent 1). Käsu kshana iq acquire enda vaikeväärtus --coherent jääb 1. Uued avalikud iq::acq::auto_coherent_periods ja iq::acq::AUTO_COHERENT_S; regressioonitest tests/iq_cli.rs::track_default_handoff_does_not_false_lock_where_one_period_did.
  • Iga loodud graafika järgib nüüd saidi Observatory teemat: iga diagrammi baidid muutuvad. See on avaldatud jooniste, värvide ja fontide tahtlik uuendus; ükski joonistatud väärtus, koordinaat ega silt ei nihkunud. Iga stsenaariumi *.chart.svg (ja seega Studio diagrammieksport ja README demodiagrammid), käituse aruande HTML (*.report.html), ajaskaala animatsioon (--animate), stsenaariumitulemuse ja uuringu HTML-lehed, valideerimiskokkuvõte ning dokumentide joonised ja diagrammid kasutasid sooja tumedat juulipaletti (#0c0b08 põhi, #e0bd84 kuld) ja sooja paberi aruandeteemat. Nüüd võtavad need iga värvi ja fondi ühest moodulist src/palette.rs, mis peegeldab faili web/theme.css: diagrammid joonistatakse instrumenditumedana Observatory põhjal (#060A14) Geisti kirjatüübipinus; aruanne, animatsiooniesitaja ja tulemuslehed järgivad vaataja hele/tume eelistust Observatory heleda ja tumeda tokenitega. Kuus rikkevaldkonda säilitavad igaüks ühe värvi (häire korall, spuufimine magenta, ajastus sinine, orbiidid tsüaan, terviklikkus laim, navigatsioon merevaik), ja tõendustasemed loevad valideeritud laim, modelleeritud merevaik, partner magenta. Joonvesi (waterfall) rambid säilitavad oma tajupõhise (inferno) järjestuse, uuesti ankurdatuna uuel põhjal.
    • tests/palette_sync.rs hoiab mooduli mõlemas teemas failiga web/theme.css kooskõlas, kontrollib, et docs/assets/palette.json ja docs/diagrams/mermaid-config.json (mõlemad moodulist genereeritud, Pythoni jooniste tööriistade ja mermaid-cli jaoks) on ajakohased, ning ebaõnnestub, kui kataloogis src/ ilmub väljaspool paletti kuueteistkümnendsüsteemis värvikirjeldus.
    • tests/published_figures_still_reproduce.rs saab kolmanda diagnoosi „ainult värvid ja fondid nihkusid“, nii et paleti uuendust saab eristada nihkunud joonistatud väärtusest. Iga uuesti renderdatud README diagramm kontrolliti selle normaliseerija all oma eelkäijaga võrdseks.
    • tools/gen_validation_figures.py loeb paletti ja genereerib nüüd ka kolm README tulemusjoonist, millel polnud kinnitatud generaatorit (domain-coverage-map, scenario-fom, sgp4-regime-bars), päris tekstielementidega, failidest web/capabilities.json, tulemusest clock-holdover ja tests/fixtures/sgp4_comparison.md. tools/gen_readme_assets.py loeb sama paletti, mis parandab selle heleda teema triivi saidist. Väärtused sgp4-regime-bars on selle fikstuuri halvima juhu veerg kshana↔ref (7.31e-9, 8.05e-9, 8.18e-9 ja 4.12e-6 km), muutumatud Matplotlibi joonisest, ja tests/figures_doc_sync.rs ebaõnnestub nüüd, kui kinnitatud joonis ja fikstuur on vastuolus.
  • docs/assets/figures/domain-coverage-map värskendatud praeguste andmetega (andmemuutus, mitte ümbervärvimine). Joonis väitis 28 võimekust 8 valdkonnas (11 valideeritud, 17 modelleeritud), aegunult oma väidetud allika suhtes; nüüd uue generaatoriga failist web/capabilities.json joonistatuna loeb see 46 võimekust 8 valdkonnas (17 valideeritud, 29 modelleeritud).

Parandatud#

  • CW/kitsaribasegaja Q on nüüd 1,0, mitte 1,5. Õpikuväärtus kandjal oleva tooni jaoks on 1 (toon säilitab signaali spektraalse tipu, κ = T_c, Q = 1/(R_c κ)); vana 1,5 tegi tooni võrdsel J/S-il vähem kahjulikuks kui lairibamüra. Väljundi muutus: umbes −1,8 dB efektiivne C/N0 CW/kitsaribasegajate all kõrgel J/S-il liikides jamming, lunar-jamming ja interop (kaasapakitud näite spectrum toon: 17,98 dB-Hz tabelist, oli 19,74). Lairiba Q jääb 1,0 (konservatiivne, umbes 3 dB õpiku ~2 alla) ootel versiooni 0,34 ülevaatust. Vana 1,5 säilitamiseks seadke q_override.

  • kshana iq scene täisarvuväljund kasutab täisarvuvahemikku. Ühikvõimsusega müra ja kirjutaja skaalaga 1 tulid ci8/ci16 stseenid välja umbes kujul {-1, 0, 1} ja 2-bitistel stseenidel olid läved kohal 2,8 sigmat. Täisarvuvormingud skaleeritakse nüüd nii, et oodatav komponendi RMS on veerand täisskaalast (31,75 LSB ci8-s, 8191,75 ci16-s) või 2 LSB 2-bitises. Skaala ja piiratud elementide arv trükitakse ja kirjutatakse kõrvalfaili. Ujukomaväljund on muutumatu.

  • Kaheksa fikstuurikinnitust seitsmes testifailis enam macOS-is viimase biti erinevuste tõttu ei ebaõnnestu (osa probleemist #36). Kinnitused, mis kontrollivad, et mootor ehitab endiselt sõltumatu etaloni kinnitatud sisendid (Jacobi maatriksid, olekutabel, stardiasimuudid), võrreldi bitthaaval ja need ebaõnnestusid macOS arm64 peal 2 kuni mõne tuhande ühiku võrra viimases kohas. Nüüd võrreldakse neid 1e-12 piires fikstuurist võetud skaalast; täisarvud, võtmed ja pikkused võrreldakse endiselt täpselt ning mutatsioonitest näitab, et suhteline muutus 1e-6 ebaõnnestub endiselt. Stardiasimuudi kinnitus võrdleb sin az ja tõusva/laskuva haru, mitte asimuuti ennast, kuna asin võimendab oma argumendi ühe ulp-i umbes 3e-9 rad-ini, kus kalle võrdub koha kolatituudiga. Ükski sõltumatu etaloni tolerants ega eelregistreeritud lävi ei muutunud. Kaks testi (Kuu ühine OD, Kuu jälgitavus) ei ole kaetud: macOS-is nihkuvad nende eelregistreeritud võrdlused ise ja see jäetakse järeltööks.

  • kshana iq track ja kshana iq sweep rakendavad esiotsa lipud. Kasutustekst reklaamis --bandpass/--notch/--blank/--excise/--agc/--bits käsul track, kuid track ja sweep ei ehitanud ahelat kunagi: lipud jäeti vaikselt tähelepanuta ja väärtuseta lipp nagu --notch neelas selle järel oleva lipu. Mõlemad käsud parsivad need nüüd nagu iq acquire ja panevad värske esiotsa ahela hõivamisläbimise ja jälgimisläbimise ette. Väljund on võrdne käsu käitamisega failil, mille iq frontend kirjutab samade lippude jaoks.

  • IQ stseeni andmed paigutatakse signaali kaupa. kshana iq scene --data (ja NavData::Seeded) pani 50 bit/s bitid igale signaalile, kaasa arvatud pilootidele, ning Galileol ja BeiDoul GPS LNAV kiirusel. Andmed järgivad nüüd iga signaali enda sümboliajastust, mida annab uus SpreadingCode::data_modulation() (DataModulation, seatud iga konstruktori poolt moodulis iq::signals). See on 10 ms L5-I5-l, 4 ms E1-B-l, 2 ms BeiDou B1I GEO-l (D2) ning 20 ms bitid 10 ms meandriga GLONASS L1OF-il. Andmed lükatakse tagasi pilootidel, GPS L2C-l ühe CM/CL vooguna ja NavData::Lnav kõigel peale L1 C/A. Kohandatud koodid säilitavad vaikimisi eelmise 20 ms ajastuse. Programmeeritud Scene, mis küsis NavData::Lnav mitte-L1 C/A koodil või NavData::Seeded piloodil, genereeris varem vaikselt ja tagastab nüüd esimesel lugemisel vea.

  • GLONASS L1OF kanalid hõivatakse ja jälgitakse oma FDMA kandjal. iq::acq::acquire ja jälgimiskanalid segasid iga koodi alla ainult väärtusest if_hz. Mitme kanaliga GLONASS salvestuses leidis seetõttu kanali +3 otsing kanali 0 signaali (kõik kanalid jagavad ühte kaugusmõõtmiskoodi) ega vaadanud kunagi 1,6875 MHz kõrgemale. Mõlemad kasutavad nüüd SampleSpec::baseband_hz(carrier) = if_hz + (carrier − center_hz). Kandja liige on null iga salvestuse puhul, mis on tsentreeritud signaali enda kandjale, ja jäetakse välja, kui keskpunkt on teadmata, nii et CDMA töötlus on muutumatu. Kui tegite vana käitumise ümber, lisades carrier − center kõrvalfaili väljale if_hz, eemaldage see liige: nihe rakendatakse nüüd kandjast ja keskpunktist, nii et selle sisse jätmine rakendab seda kaks korda. Teadaolev piirang, siin muutumatu: GLONASS stseen tuvastab iga satelliidi selle sagedusnumbri k järgi ja satelliidi id u32 ümbritseb negatiivse kanali. Tõe kõrvalfail kirjutab k = -7 kui sat_id 4294967289 (k + 2^32). Lugege see tagasi kui k koos i32 teisendusega.

[0.32.0] - 2026-10-05#

Lisatud#

  • GNSS-i IQ-kiht CLI-s ja Pythonis (0.32.0 Phase A). Olemasolev moodul iq on nüüd kasutatav ilma Rusti kirjutamata. Viis uut käsku kshana iq liituvad andmetöötluse rühmaga: scene genereerib pika mitme satelliidi IQ stseeni faili koos tõe kõrvalfailiga; acquire käitab ühe või mitme PRN-i FFT hõivamist salvestusel ja teatab iga tuvastuse (PRN, Doppler, koodifaas, statistik, lävi); track hõivab ja käitab seejärel DLL/PLL/FLL panka salvestusel ning väljastab epohhipõhise jälgimisväljundi (CSV/JSON) seadistatavate ahela ribalaiuste, integreerimisaja ja korrelaatori vahega; sweep mängib ühe salvestuse läbi mitme ahelakujundusega ja teatab tulemuseks oleva jitteri ja lukustuse mõõdikud kujunduse kaupa; ning labfit sobitab jälgimisahela lukustuse kaotuse mudeli vastuvõtja usaldusajajoonega. Sama tuum on eksponeeritud Pythonile (kshana.iq_scene, iq_acquire, iq_track, iq_labfit, iq_signals), tagastades NumPy-sõbralikke loendeid ja sõnastikke. Ainult tarkvaraline ja lisandav: uusi sõltuvusi pole, ei edastata, segamise ega spuufimise lainekuju sünteesi pole; mootor, hõivamine, jälgimine ja ahelakujundused on teegi enda omad, nii et CLI või Pythoni kutsuja saab samad bitid mis Rusti testid. Uus moodul iq::cli; stseeni enda tõe kõrvalfail on sõltumatu etalon failis tests/iq_cli.rs (hõivamine taastab iga süstitud koodifaasi ja Doppleri, jälgimine koondub süstitud Doppleri juurde). Ükski avaldatud stsenaariumi liikide arv ega kontrollimaatriksi rida ei muutu.
  • Ülejäänud GNSS-i IQ teegi võimekused CLI-s iq ja Pythonis (0.32.0 Phase A.2). Tugineb Phase A-le, tuues pinnale kihi iq ülejäänud osa ilma Rusti kirjutamata:
    • Levikanal käsul iq scene (ja Pythoni iq_scene): esimest järku ionosfäär (--iono-stec/--iono-vtec või --iono-klobuchar), Saastamoineni/Niell'i troposfäär (--tropo), Cornelli skintillatsioonimudel (--s4, --scint-tau0, --sigma-phi), peegeldav maapinna mitmeteelevi (--multipath-height/--multipath-ground), kolme oleku maismaa-mobiilne kanal (--land-mobile) ja nähtavuseta (NLOS) plokk (--nlos) kehtivad igale satelliidile uue crate'i-sisese silla (iq::channel::SceneChannelAdapter) kaudu, mis teisendab kanalimudelite absoluutsed teed stseeni geomeetriat ületava liigse kujule.
    • SigMF väljund käsul iq scene (--format sigmf): kirjutab valimid paarina .sigmf-data/.sigmf-meta koos hõivamise ja satelliidipõhiste annotatsioonidega; acquire/track loevad SigMF-i juba, nii et stseen käib edasi-tagasi.
    • Esiotsa DSP: uus käsk iq frontend <in> <out> ja samad lipud käskudel acquire/track (--bandpass, --notch, --blank, --excise, --agc, --bits 1/2/3/8/14) käitavad etapid iq::frontend (ribafilter FIR, adaptiivne sälk, impulsi blankeerimine, sageduspiirkonna väljalõikamine, AGC, kvantiseerija); peegeldatud Pythonis kui iq_frontend.
    • Edastatud efemeriidiga stseenid: iq scene --nav <rinex_nav> --rx-pos lat,lon,alt (koos --start/--window/--prn) paigutab iga terve GPS satelliidi selle tõelisele edastatud geomeetriale, kasutades mootori RINEX-lugejat, nii et tõe kõrvalfail kannab päris satelliidipõhist vahemaad, Dopplerit ja koodifaasi; peegeldatud Pythonis kui iq_scene_broadcast. Ainult tarkvaraline ja lisandav: uusi sõltuvusi pole, ei edastata, segamise ega spuufimise lainekuju sünteesi pole (kanali leviefektid mõjuvad ainult seaduslikule signaalile). Iga arvuline väide on testitud sõltumatu etaloni vastu (suletud kuju või süstitud tõde) kanali/esiotsa ühiktestides ja failis tests/iq_cli.rs.

[0.31.0] - 2026-10-04#

Lisatud#

  • GNSS-i IQ-kiht: signaalitaseme simulatsioon ja tarkvaravastuvõtja töötlus. Uus moodul iq viib Kshana ühe satelliidi lühiplokiga L1 C/A esiotsast täieliku signaalitaseme kihini, mis on kättesaadav käsurühmast kshana iq. See genereerib pikki, mitme satelliidi töötlemata IQ stseene epohhipõhise tõe kõrvalfailiga (iq::scene); rakendab levi signaalitasemel — ionosfäär koodi-kandja lahknemisega, troposfäär, amplituudi ja faasi skintillatsioon (Cornelli mudel), Fresneli mitmeteelevi ja kolme oleku maismaa-mobiilne kanal, koos nähtavuseta (iq::channel); hõivab ja jälgib FFT hõivamise ja mitme kanaliga DLL/PLL/FLL pangaga, mängides ühe salvestuse läbi paljude ahelakujundustega (iq::acq, iq::track); modelleerib esiotsa — FIR/IIR filtreerimine, 1–14-bitine kvantimine, AGC, sälk, impulsi blankeerimine ja sageduspiirkonna väljalõikamine (iq::frontend); voogedastab suuri salvestatud andmekogumeid piiratud mälus — int8/int16/float32/pakitud-2-bitised ja reaalse IF vormingud, mitme failiga SigMF, ümberdiskreetimine, andmekogumi inventar faili kohta SHA-256-ga ja partiikäitaja (iq::io); lisab hajutuskoodid GPS L5/L2C, Galileo E1 (CBOC, päris ICD mälukoodid) ja E5a, BeiDou B1C/B1I ning GLONASS L1OF jaoks, igaüht kontrollitakse selle liidesekirjelduse dokumendi vastu (iq::signals); ning sobitab jälgimisahela lukustuse kaotuse mudeli päris vastuvõtja täheldatud käitumisega labori käitustes, koos ühe käituse väljajätmise hold-out veaga ja ekstrapolatsiooniga, mis on märgitud ennustusena (iq::labfit). Iga arvuline väide on testitud sõltumatu etaloni vastu (ICD tabel, suletud kuju või sõltumatu vastuvõtja, mis taastab süstitud tõe); füüsikalised kanali- ja ahelamudelid jäävad MODELLED. See on ainult tarkvarakiht: see kirjutab IQ faile tarkvaravastuvõtjatele ega sünteesi häire- ega spuufimislainekujusid ega juhi raadioriistvara. Ükski avaldatud stsenaariumi liikide arv ega kontrollimaatriksi rida ei muutu. Disain: docs/design/GNSS-IQ-PLAN.md.
  • Vastuvõtja usaldus: hinda päris GNSS-i vastuvõtja logi. kshana receiver-trust <scenario.toml> loeb u-blox UBX, RINEX 3 (valikulise edastatud navigatsioonifailiga), Android GnssLogger või NMEA 0183 logi üheks ajamärgistatud ajajooneks ja käitab selle kohal usaldusmonitore: kandja ja müra tiheduse (C/N0) langus, lukustuse kaotus, automaatne võimenduse juhtimine (AGC), u-blox segamisnäidik, asendihüpe ning RINEX-i ja navigatsiooni korral mootori enda üksikpunkti lahend pariteediga vastuvõtja autonoomse terviklikkuse monitooringuga (RAIM) ja kellaabistatud monitor. Iga epohh on nominaalne, halvenenud või mitteusaldatud ning tulemus ütleb, millal ja miks. Stsenaariumis märgitud sündmusi ja ennustatud C/N0 langusi hinnatakse samas failis märgitud tolerantside vastu: tuvastatud, hiline või vahele jäänud, ning nõus või mitte nõus. Väljundid on tulemus-JSON, epohhipõhine CSV ja diagramm; tulemus kannab logi SHA-256 ja iga lävi. Samuti kättesaadav Pythonist (kshana.receiver_trust), WebAssembly paketist (receiver_trust, logid sisemised) ja Model Context Protocoli (MCP) serveri uuest tööriistast assess_receiver_log. Juhend: docs/RECEIVER-TRUST.md; näide: examples/receiver-trust/. JammerTest 2024 spuufimislogidel taastoodab mootori tee eelregistreeritud sõltumatu etaloni torujuhtme esimese häire igal avaldatud algusel (tests/receiver_trust_jammertest.rs). Monitorid jäävad MODELLED; ükski kontrollimaatriksi rida ei muutu.

0.30.0 - 2026-10-03#

Väiksem väljalase. Valideerimise voorud 2 ja laine 1 paketid viivad kontrollimaatriksi 223 realt (93 VALIDATED) versioonis 0.29.3 249 reale (123 VALIDATED, 122 MODELLED, 4 PARTNER); iga edutamine kontrolliti sõltumatu etaloni vastu tolerantsiga, mis fikseeriti enne käitust, ja iga lahknevus avaldatakse tähelepanekuna. Uus: natiivne NAIF-i kerneli lugeja ja DE440 tee, üks valideeritud SGP4-st ITRS-i levi ja aja tee, mõõdetud kellateek, LunaNet AFS-i etalongeneraator, laiendatud täpsusega ja ruutjuur-informatsioonilahendajad ning päris Kuu IQ töötlus LuGRE andmetel. Nihkunud avaldatud arvud on loetletud allpool uuendustena.

Kakskümmend seitse kontrollimaatriksi rida muutuvad VALIDATED, kui sõltumatu etalon oli nõus tolerantsi piires, mis fikseeriti enne esimest võrdlust (edutamisreegel failis docs/VALIDATION.md): kümme esimeses valideerimisvoorus ja seitseteist teises. Viiskümmend üks MODELLED rida pandi esimeses voorus välise sõltumatu etaloni ette ja ülejäänud suunatavad read teises; iga lahknevus on allpool kirja pandud tähelepanekuna, mitte ära häälestatud. Kolm rida jagati nii, et valideeritud osa ei kanna valideerimata jääki, mis viib maatriksi 223 realt 226 reale; sellest ajast liidetud valideerimispaketid viivad selle 249 reale. Arvud loetakse genereeritud failist docs/VERIFICATION-MATRIX.md.

0.29.0 pärast vooru 1 Avaldamata
Kontrollimaatriksi read 223 223 249
neist VALIDATED välise etaloni vastu 83 93 123
neist MODELLED 136 126 122
neist PARTNER 4 4 4
Selles kirjes kasutatud lühendid
Lühend Tähendus
ADD, ARAIM, MAAST Airborne Design Document (ARAIM-i oma); täiustatud vastuvõtja autonoomne terviklikkuse monitooring; Stanfordi ülikooli Matlab Algorithm Availability Simulation Tool
ADEV, VRW, ARW Alani hälve; kiiruse juhuslik kõnd; nurga juhuslik kõnd
ANISE, SPICE, NAIF, PCK avatud lähtekoodiga astrodünaamika tööriistakomplekt (Nyx Space); NASA Spacecraft, Planet, Instrument, C-matrix, Events tööriistakomplekt selle Navigation and Ancillary Information Facility'st; planeetide konstantide kernel
BCRS, TDB, TT Barycentric Celestial Reference System; Barycentric Dynamical Time; Terrestrial Time
BIPM, UTC(k) Rahvusvaheline Kaalude ja Mõõtude Büroo; labori realisatsioon koordineeritud maailmaajast
CCSDS, OEM, LTC, TCL Consultative Committee for Space Data Systems; Orbit Ephemeris Message; Kuu ajasüsteemid, mis on kirjutatud sõnumi väljale TIME_SYSTEM
CRLB Cramér–Rao alumine piir
CW Clohessy–Wiltshire'i suhteline liikumine
DE440 Jet Propulsion Laboratory Development Ephemeris 440
DOP, PDOP täpsuse halvenemise tegur; asendi täpsuse halvenemise tegur
EKF, UKF, INS, GNSS, IMU laiendatud Kalmani filter; unscented Kalmani filter (UKF); inertsiaalnavigatsioonisüsteem; ülemaailmne satelliitnavigatsioonisüsteem; inertsiaalmõõteseade
EMT, VPL, HPL efektiivne monitori lävi; vertikaalne ja horisontaalne kaitsetase
EOP, IERS, PCC, MAE Maa orientatsiooniparameetrid; Rahvusvaheline Maa Pöörlemise ja Tugisüsteemide Teenistus; Prediction Comparison Campaign; keskmine absoluutviga
ERFA, SOFA Essential Routines for Fundamental Astronomy; Standards of Fundamental Astronomy
GMAT NASA General Mission Analysis Tool
NTN, SSB mitteterrestriaalne võrk (3GPP); sünkroniseerimissignaali plokk
IGS, ILRS, ITRF2020 Rahvusvaheline GNSS-i Teenistus; Rahvusvaheline Laserkaugusmõõtmise Teenistus; Rahvusvaheline Maa Tugisüsteem 2020
ILS, LAMBDA täisarvuline vähimruutude meetod; Least-squares AMBiguity Decorrelation Adjustment
ISB süsteemidevaheline nihe
LEO madal Maa orbiit
MHSS, PL, TPL mitme hüpoteesi lahenduse eraldamine; kaitsetase; ajastuse kaitsetase
PSD, IQ, SigMF võimsuse spektritihedus; faasis ja kvadratuuris valimid; Signal Metadata Format
QPN kvantprojektsioonimüra
RAIM vastuvõtja autonoomne terviklikkuse monitooring
SBAS, WAAS, DFMC, GEO satelliidipõhine täiendussüsteem; USA Wide Area Augmentation System; kaksiksageduslik mitme konstellatsiooniga; geostatsionaarne SBAS-i satelliit
RMS, SISRE ruutkeskmine; signaali ruumis vahemaa viga
RTKLIB avatud lähtekoodiga GNSS-i positsioneerimisteek
TCXO temperatuurikompenseeritud kristallostsillaator
VLBI väga pika baasjoonega interferomeetria

Kontrollitud#

Iga allolev rida nimetab oma sõltumatu etaloni liigi (Teek: sõltumatu kolmanda osapoole teek, mis arvutab üheselt määratud suuruse; Mõõdetud: päris mõõdetud andmed; P2: sõltumatu numbriteek, mis arvutab uuesti lineaaralgebra suuruse kinnitatud sisenditel), sõltumatu etaloni, tolerantsi, mis fikseeriti enne käitust, ja tulemuse. Iga edutamise käitas uuesti teine ülevaataja, kes lõi fikstuuri baitideni uuesti ja näitas, et tahtlik mootori mutatsioon muudab testi punaseks.

  • GNSS/INS andurite liitmine (Teek), piiratud lõdvalt seotud 15-olekulisele veaoleku EKF-ile: NaveGo v1.4 (LGPL-3.0, käitatud GNU Octave'is) oma päris Ekinox IMU/GNSS sõidul. Kshana horisontaalne, vertikaalne ja asendi innovatsiooni RMS on 0,912, 0,940 ja 0,861 NaveGo omast (lävi 1,2) ja selle keskmine normaliseeritud innovatsioon on 0,395 (lävi 1,5). GNSS on kogu sõidu vältel olemas, nii et katkestust ei testita. Tihedalt seotud UKF ja seotud kellafilter jäävad väitest välja.
  • 3-DOF asendi- ja suunamisvea eelarve (Teek), kitsendatud gravitatsioonigradiendi pöördemomendi tipule: Basilisk 2.9.1 GravityGradientEffector, 40 juhtu, 1e-12 suhtelise piires (halvim 2.1e-15). RSS suunamiseelarve on kutsuja antud arvude summa ja jääb sellest välja.
  • Kuu ühine side- ja navigatsioonigeomeetria (Teek), kitsendatud koha paigutusele, asimuudile, tõusunurgale ja vahemaale: ANISE 0.10.2, 768 valimit, 1e-6 kraadi ja 1 mm piires (halvim 2.2e-12 kraadi ja 5.6e-9 m). Kaugusmõõtmise täpsuse parameeter on disainisisend, mis jääb väitest välja.
  • Momendivaba jäiga keha asendidünaamika (Teek): Basilisk 2.9.1 kosmoseaparaadi hub, 1e4 s kahel üldisel inertsil, kvaternion ja kiirused 1e-9 piires (halvim 3.3e-11 ja 3.4e-12 rad/s).
  • GNSS-i kandelaine faasi täisarvuliste mitmetähenduslikkuste lahendamine (LAMBDA) (Teek), kitsendatud ILS-lahendusele ja selle kahele parimale normile: RTKLIB v2.4.2-p13 lambda(), 300 kovariatsiooni, 0 täisarvulist mittevastavust, normid 1e-9 suhtelise piires (halvim 5.6e-13). Alglaadimise (bootstrapped) edumäär jääb kontrollituks ainult sisemiselt.
  • Komponeeritud ajastuse PL, skalaarne MHSS (P2): numpy 2.3.5 ja scipy 1.18.1 300 kinnitatud sisendil, PL 1e-9 suhtelise piires (halvim 1.2e-10), määrav alamhulk identne.
  • GLS ühisrežiimi valgendamine ja Mahalanobise samasus (P2): numpy 2.3.5 LAPACK 201 kinnitatud kovariatsioonil, 1e-12 suhtelise piires (halvim 7.9e-16); tingimusarvud kuni 19,3.
  • DE440 Kuu peatelgede orientatsiooni pakkuja (Teek): SPICE pxform binaarsel PCK-l 2 000 sõlmedevälisel epohhil, 1.7e-5 rad piires (halvim 1.7e-6 rad, umbes 3 m pinnal), pärast parandust, mis on loetletud jaotises „Parandatud“.
  • SigMF salvestuse sisend ja väljund ning Welchi spektrid (Teek), kitsendatud SigMF-i lugemisele ja kirjutamisele ning welch_psd: scipy 1.18.1 signal.welch 1e-12 suhtelise piires lahtri kohta (halvim 6.0e-14); sigmf-python 1.13.0 salvestused dekodeeriti bitthaaval identselt; teegi metaandmed kehtivad SigMF v1.2.6 skeemi vastu. IQ süntees ja selle mudelivõrdlused jäävad sellest välja.
  • LEO edastatud efemeriidi sobitaja ja SISRE sobitusintervalli vastu (Mõõdetud), kitsendatud 16-parameetrilisele Kepleri sobitusele ja selle ainult orbiidi SISRE-le: TU Grazi ITSG täpsed orbiidid nelja satelliidi jaoks Liu et al. 2025 statistika vastu, komponendid 1.5x piires (0,804 kuni 1,087) ja SISRE 1.5x piires (0,716 kuni 0,809).

Tähelepanekud#

Sõltumatu etalon oli nende ridadega vastuolus, seega jäävad need MODELLED. Iga tähelepanek on kirjutatud ka rea sõltumatu etaloni teksti (ja seega faili docs/MODELLED-RATIONALE.md), koos testiga, mis seda kinnitab.

  • Pardakella oleku hindamine: 11 GPS Block IIF satelliidi väljajäetud IGS kelladel on kolme oleku filter ühe sammu ees kooskõlas, kuid ühe tunni juures ülekindel 9-l 11-st (perioodilised ja flicker-liikmed ei ole mudelis).
  • Spuufimise tuvastamine: JammerTest 2024 puhul ei andnud ükski vaadeldavuse taseme monitor häiret 10 s jooksul ühestki 8 avaldatud algusest ja kolm algusele eelnevat akent kandsid valehäireid.
  • Ajastuse kaitsetase spuufimise all: mõõdetud tuvastamata ajaviga ületab TPL-i 3 8 tuvastatud algusest (1.9x kuni 5.3x); 60 s kella kalibreerimine ei kata vastuvõtja TCXO triivi.
  • Stardiakna ja tõusu geomeetria: Orekit 12,2 vastu ühtib geomeetria ümardamiseni, kuid Maa pöörlemise koha kiirus ületab 1e-6 suhtelise kohal 62,9 kraadi laiust (1.12e-6, poolusliikumine, mille sfääriline mudel välja jätab). Voor 2: tõelise poolusega kiirus epohhiga ühtib, vaike-epohhita kiirus ületab endiselt (vt allpool).
  • Ballistiline atmosfääri sisenemise koridor (Allen–Eggers): Stardusti sisenemise ennustatud tipukiirendus on 61,8 g rekonstrueeritud 32,89 g vastu (+88 %, tolerants 15 %).
  • Ühine UT1 ja poolusliikumise viga: 178 IERS Bulletin A väljaandes trükitud täpsusvalemi vastu ühtib poolus 1.5x piires, kuid UT1 mitte (0,48 10 päeva juures, 1,59 40 päeva juures). Asendatud voorus 2: rida on nüüd VALIDATED (vt allpool).
  • Võrguväline vaikimisi Maa orientatsiooni sisend: astropy kinnitab ridade loenduse, kuid 12 rida, mida teek nimetab Bulletin A ennustusteks, on märgitud mõõdetuks (I), mitte ennustatuks (P). Operatiivse ennustaja rea kokkulangevusarvud olid seetõttu mõõdetud ridade vastu. Asendatud voorus 2: mootor klassifitseerib read lipu järgi ja rida on VALIDATED.
  • Operatiivstiilis Maa orientatsiooni ennustusviga: ennustaja UT1 viga on 2.4x kuni 12.6x Bulletin A omast 1 kuni 10 päeva juures ja 5,32 ms 10 päeva juures, väljaspool 2. EOP PCC vahemikku 0,36 kuni 3,13 ms.
  • Kuu geodeetiline VLBI: ANISE valguse aegade vastu läbi DE440 ei jää ükski viivitus 1 ps piiresse; suurim lõhe on 24 µs, enamasti analüütiline Kuu keskpunkt (umbes 200 km DE440-st). Voor 2: kerneliitee on VALIDATED omaette real; see analüütiline tee jääb MODELLED.
  • Kuu koostalitlusvõime eksport: Orekit 12,2 keeldub ajasüsteemidest LTC ja TCL, seega Kuu OEM-failide vahetust teise lugejaga ei ole tõestatud.
  • Clohessy–Wiltshire'i suhteline liikumine: Orekiti mittelineaarse liikumise vastu 100 m juures on lõhe 1,2 kuni 6,3 mm, üle 1 mm; see skaleerub nagu väljajäetud teist järku liige, nii et eelregistreeritud tolerants asus lineariseerimisvea all. Asendatud voorus 2: teist järku parandus on VALIDATED sama läve vastu.
  • INS/TRN vabaliikumise vea kasv: NaveGo vabainertsiaalse Monte Carlo vastu kehtivad kasvuseadused 5 % piires kuni 600 s ja ületavad seda sealt edasi (2.2x kuni 8x ühe tunni juures), kuna need jätavad välja Schuleri tagasiside. Asendatud voorus 2: Schuleri veamudel on VALIDATED.
  • Kuu teenindusruumala päris konstellatsiooni geomeetriast: 4 12 avaldatud kättesaadavuse statistikast erinevad rohkem kui 2 protsendipunkti võrra (kuni 22,5).
  • Heterogeense UTC(k) jälgitavuse nihke ülempiir: 105 024 BIPM-i real ületab 50,8 % ridadest ülempiiri; avaldatud määramatus piirab BIPM-i nihke mõõtmist, mitte nihet.
  • Kuu datumi nullruumi klassifikatsioon: avaldatud viie reflektori geomeetria puhul on korrelatsioon -0.78 vastu -0.97 ja alguspunkti CRLB on 96 kuni 98 % artikli omast madalam.
  • Kuu LLR datumi geomeetria substraat: 192 ILRS-i Kuu normaalpunkti vastu 2024. aastast oli ühesuunaline jääk RMS 96 m varasema orientatsiooni interpolatsiooniga ja on 22,7 m pärast allolevat parandust, endiselt üle 10 m läve (ümardatud jaamade koordinaadid, poolusliikumist pole). Orientatsiooniseeria piirab vaikselt väljaspool 2024-2025. Voor 2: mõõdetud kauguse mudel on VALIDATED omaette real (2,81 m); seeria katab nüüd 2014-2030 ja annab väljaspool seda vea.
  • Relativistliku kellakiiruse seos tugisüsteemiga: omapotentsiaali liige on 3.18e-4 üle avaldatud väärtuse (tolerants 1e-4); artikkel hindab teistsugust potentsiaali, nii et selle suletud kuju avaldatud väärtust pole. Asendatud voorus 2: 2. astme ekvatoriaalne potentsiaal on VALIDATED sama artikli vastu.
  • Iga Päikesesüsteemi keha füüsikalised konstandid: 12 84 lisatud kehade konstandist erinevad NAIF-i pck00011 ja gm_de440 omadest (vanemad Marsi kaaslaste elemendid; muud GM-lahendused Uraanile, Neptuunile ja Pluutole). Voor 2: konstandid järgivad nüüd NAIF-i (ümberkirjutus, ei loeta), ja arvutatud orientatsioon ühtib SPICE-iga; rida jääb MODELLED.
  • Valitavad LEO efemeriidimudelid: 22-parameetriline sobitus jätab 20 min kaaredel 1.71x ja 1.86x avaldatud piki rada viga, üle 1.5x. Asendatud voorus 2: 22-parameetriline mudel ja sobitus on VALIDATED omaette real.
  • Ühine GNSS-i ja LEO positsioneerimine: süsteemidevaheline nihe ühtib RTKLIB-iga, kuid 93,2 % epohhidest on 3 m piires ITRF2020-st 95 % vastu; RTKLIB ise saavutab andmetel 88,2 % (93,6 % pärast vooru 2 rühmaviivituse parandust).
  • Ühisrežiimi terviklikkuse pimedus ja katvuse ning DOP-i kaardid: mõlemad võrdlused läbiti, kuid lükati ülevaatusel tagasi, sest tahtlikult vale mootor läbib need samuti (esimene kontrollib ainult sisemist samasust; teise avaldatud põhjad ei näe kahekordistunud PDOP-i). Voor 2: ühisrežiimi terviklikkuse pimedus on VALIDATED pariteeti kandvatel sisenditel; katvuse kaardid jäävad tähelepanekuks (vt allpool).

Valideerimise voor 2#

Teine voor võttis iga rea, mille esimene voor jättis suunatavaks, uute eelregistreerimistega, mis kinnitati enne mis tahes fikstuuri toomist või sõltumatu etaloni käitamist, vastuolulise teise ülevaatajaga, kes käitas iga võrdluse uuesti, ja tahtliku mootori mutatsiooniga, mis peab iga testi punaseks muutma. Omanik võttis 2026-10-02 vastu Omega-välise piiri rea parandatud sõnastuse enne selle edutamist (vana tekst oli koodiga vastuolus).

Edutatud VALIDATED (17). Sõltumatu etaloni liik sulgudes; tolerants fikseeritud enne käitust.

  • Relativistliku kellakiiruse seos tugisüsteemiga (Etalon): Ashby ja Patla 2024 L_m 2.8e-6 piires (lävi 1e-4) artikli viidatud kahe välja 2. astme ekvatoriaalsest potentsiaalist; pyshtools 350. astme gravitatsioon radiaalse sissekande jaoks (8.3e-5); DE441 Kuu kiirus (2.5e-3).
  • Võrguväline vaikimisi Maa orientatsiooni sisend (Teek): astropy 8.0.1 ja IERS Bulletin A nr 039 kinnitavad uuesti lõigatud väljavõtte 30 lõplikku, 54 kiiret ja 90 ennustatud rida.
  • Ühine UT1 ja poolusliikumise viga (Teek): astropy ja pyerfa täispöörded reprodutseerivad ühise tabeli (UT1 ja poolus 6e-16 piires, kombinatsioon 1.9e-7 piires); IERS Annual Report 2019 realiseeritud vead annavad suhted 1,001 kuni 1,100.
  • EO kasulikkoormuse jalajälg ja katvus (Teek): Orekit 12,2 ja GeographicLib 2,1 igal eelregistreeritud lävel, J2 sõlme regressiooniga nüüd sõlmede vahes.
  • Clohessy–Wiltshire'i suhteline liikumine (Teek): suletud kujul teist järku parandusega 1.2e-7 m piires Orekiti mittelineaarsest liikumisest 1e-3 m vastu; ainult lineaarne maatriks jääb iseloomustatuks (1,2 kuni 6,3 mm).
  • B-tasandi sihtimine ja kontaktkoonuse gravitatsiooniabi (Teek): GMAT R2026a B-tasand, asümptoodid, C3 ja heliotsentrilised elemendid; sbpy 0.6.0 ning Kasuga ja Jewitt 2019 Tisserandi parameetri jaoks.
  • INS/TRN vabaliikumise vea kasv (Teek): üheksa oleku Schuleri veamudel 5 % piires parandatud NaveGo vabaliikumise käitustest kõigis 48 punktis (halvim 3,70 %).
  • Ühisrežiimi terviklikkuse pimedus (P2): numpy lstsq 1464 pariteeti kandval sisendil 1e-12 piires (halvim 1.06e-14).
  • Kuu ühine mitmetehnikaline OD ja kell (P2): numpy arvutab uuesti iga Gaussi–Newtoni sammu, sigma ja jaama vea kuuel võrgul (2.4e-11 piires) pärast QR-lahenduse parandust.
  • Kuu-VLBI jaama koordinaatide kovariatsioon (Teek): SPICE-iga ehitatud Jacobi maatriks reprodutseerib ajakava, spektri, sigmad ja nullruumi 1 % ja 0,1 kraadi piires; numpy 2e-13 täpsusega.
  • Jääk väljaspool Omega tuvastamatu ühisrežiimi piir (P2, omaniku otsusega parandatud sõnastus): numpy LAPACK 256 juhul 1e-12 piires, kuus täpset lõpmatust.
  • Baasinvariantne nullruumi klassifikatsioon (P2): SciPy ja NumPy alamruumide ühisosa 72 konstrueeritud maatriksil, täisarvud täpsed, projektori norm 6.0e-15 piires.
  • LEO navigatsioonisõnumi ühesageduslikud ionosfääri ja UTC teenused (Teek): GNSSTk 15.3.1 Klobucharile, asimuudile ja UTC triivile; ERFA kolmele liigsekundi juhule.
  • 5G mitteterrestriaalse võrgu positsioneerimispiir (P1): Bachl, Lei ja Nabeel 2026 ühe SSB piirid poole trükitud numbri piires; numpy lahendite kovariatsioonide jaoks.
  • LLR mõõdetud kauguse mudel (Mõõdetud, uus rida, eraldatud LLR datumi substraadist): 192 ILRS-i Kuu normaalpunkti RMS-iga 2,81 m 10 m läve vastu, IERS 2010 barütsentrilise valguse ajaga; läve all olevaid komponente ei lahendata üksikult ja rida ütleb seda.
  • Kuu geodeetiline VLBI, kerneliitee (Teek, uus rida, eraldatud Kuu VLBI reast): SPICE koondunud valguse ajad 1 ps piires ja osatuletised 1e-6 piires J2000 lähedastel epohhidel; analüütiline vaiketee jääb MODELLED.
  • Liu et al. 2025 22-parameetriline LEO efemeriidimudel ja selle sobitus (Mõõdetud, uus rida, eraldatud valitavate mudelite reast): päris täpsed orbiidid 1.5x piires avaldatud statistikast artikli päevadel ja väljajäetud päevadel (0,683 kuni 1,186); n_dot skaala konventsioon on ümber kirjutatud ja seda selle võrdlusega ei valideerita ning peatumisreegel on Kshana parameetrite koondumise reegel, mitte artikli RMS-muutuse reegel. ATOMIC polünoom ja viie kõrguse tabel jäävad MODELLED.

Olemasolevad VALIDATED read uuesti toetatud (arvu muutus puudub).

  • Planeetide asendid JPL Standishi elementidest ja valguse aeg Päikesesüsteemi kehade vahel: tagantjärele kahekordse nominaalväärtuse läved asendatakse eelregistreeritud võrdlustega JPL Horizons DE441-ga (RMS kõige rohkem Explanatory Supplement tabeli 8.10.1 arv, halvim 0,778, Maa lõhestus ja ICRF-i pööre kaasa arvatud; valguse ajad 1e-6 s piires Horizonsist DE441 asenditel, halvim 6.7e-9 s). Nende lipud „piir seatud pärast võrdlust“ eemaldatakse.
  • Terviklikkus (RAIM/ARAIM/SBAS): rida ei toetu enam usutavuse kontrollidele. See ütleb nüüd: ADD v4.2 ARAIM-i mitme hüpoteesi lahenduse eraldamine ühtib Stanfordi MAAST-iga ARAIM 2 jaoks 270 päris juhul (halvim VPL erinevus 2.2e-3 m 0,05 m vastu); hetktõmmise RAIM-i tuvastamine ja välistamine ühtivad RTKLIB raim_fde-ga 2016 2016 otsusest, kaldekaitsetasemega 2.7e-12 m piires; SBAS DO-229E L1 kaitsetasemed ühtivad Stanfordi MAAST-iga päris WAAS-i edastustel (2868 paari 1.6e-5 m piires). See ütleb selgelt, et ühtlase sigmaga funktsioonid raim::araim_raim ja raim::araim_dual_raim EI järgi ADD-i (sobitatud sisendite lüngad 0.75/4.04 m ja 0.39/1.93 m VPL/HPL, tähelepanek), et DFMC L5 SBAS-i võrdlus on tähelepanek (308 paari, millel pole GEO-t vaates, on Kshana poolt kaitstud ja MAAST-i poolt mitte) ja et raim::solution_separation_raim ei ole välist võrdlust. Selle enda lipp eemaldatakse.
  • LEO edastatud efemeriidi sobitaja: integreeritud tõeline orbiit lisatakse valideeritud osale (Orekit 12,2 4,55 mm piires 6 h jooksul, lävi 2 cm); parandusepolünoomid, kella sobitus ja uuendusperioodi kompromiss jäävad modelleeritud.

Tähelepanekud ja blokeeritud read (jäävad MODELLED). Iga rea sõltumatu etaloni tekst kannab tähelepanekut ja selle kinnitatud testi.

  • Navsignaali modulatsioon (Betz 2001, Hein 2006): spektrid ja korrelatsioonid ühtivad; 24 MHz külgsagarad ja iga mitmeteelevi nihe (11 kuni 15 % madal) mitte, põhjus lahendamata.
  • TDOA/FDOA geolokatsioon: piirid ühtivad Ho ja Chani ning Ho ja Xu omadega ning autorite koodiga 3e-12 täpsusega; Monte Carlost trükitud Ottawa tegurid erinevad 1,3 % ja 4,4 % võrra.
  • Maa GNSS Kuu kaugusel: GENESIS-i seniidi keskmised ühtivad Montenbruck et al. 2023 omadega 5 6-st; nadiiri keskmised on 1,0 kuni 2,4 satelliiti liiga kõrged.
  • Katvuse ja DOP-i kaardid: Maa kujundused ühtivad Orekiti, gnss_lib_py ja numpyga igal lävel; Kuu ja Marsi kujundused ületavad 1e-9 ainult peaaegu singulaarsetes lahtrites.
  • Ühine GNSS-i positsioneerimine: kaksiksageduslik 79,9 % ja täpsed tooted 94,2 % 3 m piires 95 % vastu (RTKLIB 67,9 % ja 94,1 %); täpsete toodete ISB lõhe on RTKLIB-i antennide nihete tähelepanuta jätmine.
  • Jälgimisahelad (GNSS-SDR 0.0.19): ühtivad sagedusel 35 kuni 45 dB-Hz; sagedusel 30 dB-Hz PLL +21 %, DLL -32 %, läved +1,5 dB; libisemiste ajad 0,5 kuni 2 dekaadi lühemad.
  • Kuu teenindusruumala (Orekit ja Hipparchus): 155 160 väärtusest ühtivad; halvima valimi nõue ebaõnnestub peaaegu singulaarsel LNCSS B geomeetrial.
  • Kvantinertsiaalandur: ainult QPN põhi on 21 kuni 31 % Gauguet 2009 mõõdetud mürast madalam (lävi 30 %, möödas 0,5 punkti võrra).
  • Ostsillaatorite eelseaded: mõõdetud üksused ületavad rubiidiumi holdover-i, tseesiumi lühiajalise ja CSAC halvima üksuse eelseaded; OCXO eelseadel pole mõõdetud kirjet.
  • Kosmoseilma tihedus: Jacchia 1971 on teguri 2 piires kiirendusmõõturite tihedustest päikesemaksimumil, kuid umbes 1.7x liiga tihe 2008 miinimumis.
  • Geomeetriavaba kaldtee TEC: 33 36 kaarest 3 TECU piires CODE kaardist (halvim 6,84).
  • Spuufimise tuvastamine ja TPL ametliku JammerTest 2024 logi vastu: 4 10 algusest tuvastati õigel ajal; TPL ületatakse 4 10-st.
  • Kellafilter värsketel IGS kelladel: kaks 11 satelliidist ei läbi innovatsioonisumma kriteeriumi.
  • Vähimruutude pluss autoregressiivne EOP ennustaja: UT1 1,73 kuni 2.11x Bulletin A 2 kuni 10 päeva juures.
  • UTC(k) realiseeritud nihke ülempiir: koondatud ületus 0,0333 vastu 1e-2.
  • Kuu tugisüsteemi datum kampaaniast: SPICE haru ühtib; jaamade hinnatud P2 haru jääb 1e-9 möödas tingimus-2.1e8 probleemil.
  • Kuu tugisüsteemi datum päris LLR-ist: 15 16 arvust ühtivad SPICE-iga; z-nihke sigma on 1,03 % kõrge 1 % vastu.
  • Atmosfääri sisenemine (Allen-Eggers): punktmassi lahendus ühtib agentuuride rekonstruktsioonidega (ainult ristkontroll); kiirendusmõõturi võrdlus on blokeeritud loetavale Hayabusa2 allikale.
  • ITU-T maskid: trükitud töötatud väärtused ühtivad; G.8273.2 klassi piiridel neid pole (blokeeritud).
  • Stardiakna geomeetria: tõelise poolusega koha kiirus epohhiga ühtib Orekitiga (4.9e-8); vaike-epohhita kiirus ületab endiselt (1.12e-6). Ei edutatud; järeltöö ootel.
  • Iga keha füüsikalised konstandid: nüüd erineb NAIF-ist 0 84-st (ümberkirjutus) ja arvutatud orientatsioon ühtib SPICE-iga 1.4e-10 rad täpsusega. Ei edutatud; järeltöö ootel.
  • Blokeeritud omaniku ulatuseotsusel, igaühel koos ühtiva kinnitatud võrdlusega: Kuu absoluutse jaama jälgitavus, pinnamajaka DOP, telje kõrvalekaldega eksport, ristmodaalsuse tuvastusvõimsus, ühisrežiimi kooskõla statistik ja polaarne LEO katvus.
  • Blokeeritud andmetel: aja edastamise vea eelarvestamine (vajab päris andmete redutseerimist), JammerTest C/N0 (antenni asendi ja võimsuse jaotus dokumenteerimata).

Uuendused (avaldatud arvud, mis nihkusid, vana -> uus).

  • snapshot_raim kaitsetasemed on nüüd geodeetilisel kohalikul tasandil radiaalse asemel: kuni 0,31 m HPL ja 0,14 m VPL jaamas ABMF (16 kraadi N); ükski golden ei nihkunud, kuid õpetuse gnss-sim salvestatud kokkuvõte nihkub keskmiselt HPL 22,1 m / VPL 40,0 m väärtustelt väärtustele 22,2 m / 39,9 m (docs/tutorials/scenarios/gnss-sim.toml).
  • Kuu kiirustugisüsteemi sidumise vaikeväärtused: d_alpha/d_scale 3.139807e-11 -> 3.138801e-11; d_alpha/d_radial 1.807187e-17 -> 1.806185e-17 meetri kohta.
  • Võrguväline vaike-EOP käitus (realtime-frame-eop, lahtrid loetletud failis docs/revisions/M035-default-eop-recut-cell-changes.md): predicted_rows 12 -> 90; poolusepõhi 0,06776 -> 0,05550 mas; eop_term_m 14,01601 -> 14,01583; total_m 20,09759 -> 20,09746; total_time_ns 67,03834 -> 67,03790; faili tests/golden/realtime-frame-eop.csv tabeli 2 read; operatiivse ennustaja kokkulangevus 0.256/0.695/1.252/3.885 ms -> 0.133/0.421/0.839/2.786 ms.
  • docs/LEO-NAVMSG.md liu22 SISRE orbiit/kellaga: 60 s 0.011/0.046 -> 0.014/0.046 cm; 300 s 0.068/0.139 -> 0.074/0.142 cm; 600 s 0.269/0.299 -> 0.258/0.290 cm.
  • Liu kõrgustabel, Kshana (suhe): GRACE-A 5,40 (0,61) -> 4,25 (0,48); GRACE-C 4,12 (0,66) -> 2,87 (0,46); Sentinel-2A 2,95 (1,03) -> 2,20 (0,77); HY-2A 2,38 (1,13) -> 1,25 (0,59); Sentinel-6A 0,70 (0,94) -> 0,51 (0,67).
  • LEO navigatsioonisõnumi nDot skaala 2^-60 -> 2^-58 (ei eelregistreeritud, avalikustatud; väljaspool sobitusvõrdlust); liu22 näidiskaadri CRC 0x62373A -> 0xDED99C.
  • docs/LEO-NAVMSG.md kontrollitabel: Liu ja ATOMIC rida jagati VALIDATED 22-parameetriliseks reaks ja MODELLED ATOMIC ning viie kõrguse reaks.
  • DE440 Kuu peatelgede orientatsiooni rea tekst: ulatus 2024-2025 / 731 rida -> 2014-2030 / 6 209 rida; „piirab vaikselt“ -> vead väljaspool selle ulatust.
  • Stsenaarium eo-coverage: equatorial_ground_track_spacing_km 2756,37 -> 2752,17 km; uued väljad inclination_deg (98,19) ja nodal_period_min (98,893).
  • constellation-multi-gnss-coverage (TDOP/GDOP etalonkell on nüüd vaates oleva madalaima numbriga konstellatsioon): globaalne GDOP max 2,2236 -> 2,1205, keskmine 1,122 -> 1,131, mediaan 1,115 -> 1,125, p90 1,255 -> 1,265, p95 1,305 -> 1,315, p99 1,41 -> 1,42 ja lahtripõhine GDOP kaart; mean_visible_by_constellation summeeritud täisarvudena (umbes 1e-12 suhtelist, nähtamatu 4 kümnendkohal).
  • Ühine GNSS-i ühesageduslik lahend pärast edastatud rühmaviivituse parandust: 93,2 % -> 93,6 % 3 m piires; ISB mediaan -0.351 -> -0.114 ns.
  • tracking-loop jitter_table log10_mean_time_to_cycle_slip_s (Costase ahela SNR rho/4): läve 25,47 dB-Hz juures 11,58 -> 2,10; 25 dB-Hz juures 9,55 -> 1,60; 22 dB-Hz juures 2,24 -> -0.14.
  • ins-trn-coast: iga väljund nihkub Schuleri veamudeliga; tarnitud stsenaariumi TRN tipp 52,932679 -> 44,711834 m (tests/conflict_resilience_architecture_guard.rs).
  • lunar-vlbi aruanne: uus võti geometry_path („analytic“ vaikekäitusel, ükski arvväärtus ei muutunud); uued valikulised väljad planetary_kernel_path, earth_orientation_kernel_path ja moon_orientation_kernel_path, koos epoch_partials kerneliteel; liigi kirjeldus on ümber kirjutatud. Kontrollirea kerneliitee sõltumatu etalon on SPICE (0,06 ps); ANISE (0,12 ps) muutub kerneli hindamise ristkontrolliks.
  • Keha konstandid: Phobos GM 7.087e5 -> 7.087546066894452e5; Deimos 9.62e4 -> 9.615569648120313e4; Uraan 5.7939506103e15 -> 5.793951256527211e15; Neptuun 6.83509997e15 -> 6.835103145462294e15; Pluuto 8.69326e11 -> 8.696138177608748e11 (m^3/s^2); Phobose ekvatoriaalraadius 13,1 -> 13,0 km; Phobose ja Deimose pooluse ja nullmeridiaan failist pck00011; Päikesesüsteemi prime_meridian_deg sisaldab nüüd ruut- ja perioodilisi liikmeid.
  • europa-surface-pnt (body-pnt Europal), täielikust pck00011 Europa orientatsioonist (7cfd66b4; orientatsioon ühtib SPICE pxform-iga 1.4e-10 rad täpsusega), mis nihutab maanduri inertsiaalruumis: kättesaadavus ainult releed / Maa kaugusega 0,485 / 0,725 -> 0,480 / 0,719 (83 -> 82 171 epohhist ainult releed), mediaan PDOP 5,266 -> 5,360, RMS lahendi viga 129,516 / 100,983 m -> 112,742 / 86,147 m, mediaan formaalne sigma 5,266 / 4,272 m -> 5,360 / 4,239 m. Tabel failis docs/SOLAR-SYSTEM.md ja kinnitus failis mcp/kshana-mcp/tests/round_trip.rs järgivad; mars-orbit-pnt on muutumatu.
  • space-weather (f107 180, f107a 165, kp 4), kalibreeritud tegur asendatud Jacchia 1971 omaga: activity_density_kg_m3 kõrgustel 300/400/500/600/800 km 2.602e-11 -> 3.608e-11, 4.176e-12 -> 6.929e-12, 8.136e-13 -> 1.618e-12, 1.769e-13 -> 4.189e-13, 1.544e-14 -> 3.781e-14; activity_factor 1.076/1.121/1.168/1.216/1.320 -> 1.492/1.860/2.322/2.881/3.232; reference_exospheric_temperature_k eemaldatud, mean_exospheric_temperature_k lisatud (1186,7 K); tests/space_weather_reference.rs: 800 km päikesetsükli kõikumine on nüüd 10.4x (NRLMSISE-00 13.6x) ja kõrguse väide järgib NRLMSISE-i tõusu kuni 500 km ja langust 800 km juures.
  • ntn-5g-positioning toa_median_sigma_3d_m: NR 5 MHz 2,0903959 -> 2,0903962 m; NB 200 kHz 25,938613 -> 25,938839 m (kokkuvõtte tekst muutumatu 2,09 / 25,94 m).
  • lunar-joint-od-clock (QR-lahendus): with_vlbi.station_pos_err_m 3,541344 -> 3,541350 m; without_vlbi.station_pos_err_m 2183,119 -> 2183,558 m.
  • docs/field-units-schema.json väljastati uuesti ülaltoodud uute ja eemaldatud väljade jaoks.

Valideerimispaketid#

D12, laiendatud täpsus ja ruutjuurlahendaja (kaks uut VALIDATED rida: 226 -> 228 rida, 110 -> 112 valideeritud).

Osa 1, laiendatud täpsusega sõltumatu etalon:

  • Kuu tugisüsteemi datum hinnatud jaamadega: 50-kohaline mpmath laiendatud täpsusega sõltumatu etalon (eelregistreeritud 804662d5, tingimusega skaleeritud läved a priori tagurpidi veavalemist) ühtib uuel kampaaniakuupäeval (2026-03-18) ja algsel 2024-01-01 stsenaariumil; uus VALIDATED rida kategooria P2 all. See lahendab varasema kahekordse täpsuse vaidluse: mootori datumi sigmad on kuni 9.7e-6 võrra eemal, NumPy pöördmaatriksi ja omaväärtuse teed kuni 6.2e-6 võrra ning selle Choleski ja QR teed umbes 1e-8 võrra. Mootor on oma veapiiri sees, kuid umbes tuhat korda vähem täpne kui faktoriseerimistee.
  • Sõltumatu etaloni keskkond: mpmath 1.3.0 lisatud.
  • Uuendused: puuduvad. Ükski golden-fail ega avaldatud joonis ei muutu; rida „Kuu tugisüsteemi datum vaatluskampaaniast“ jääb MODELLED (asutaja otsus 2026-10-02, variant A: see ei laena eraldi rea olekut); selle testide tekst viitab uuele testile ja selle tähelepanekule.

Osa 2, ruutjuur-informatsiooni datumi lahendaja:

  • Uus valikuline ruutjuur-informatsiooni lahendaja (linalg_sr; solver = "srif" stsenaariumis lunar-frame-campaign): Householderi QR, marginaliseerimine kolmnurkse teguri kaudu, Jacobi SVD spektri jaoks ja kompenseeritud korrutised ainult korrektselt ümardatud tehetest. 50-kohalise sõltumatu etaloni vastu (eelregistreeritud b41908c9) ühtivad selle datumi sigmad 3e-13 täpsusega uuel kuupäeval (2026-06-09); 2026-03-18 ja 2024-01-01 sisenditel on vaikelahendaja kuni 1e-5 võrra eemal. Uus VALIDATED rida kategooria P2 all. Vaikelahendaja ja selle väljund on muutumatud. Eelregistreeritud läved tõendavad vigu ainult üle umbes 2e-7 suhtelise: need lükkavad vaikelahendaja tagasi, kuid mitte ümberpööratud Householderi märki, kompenseerimata skalaarkorrutist ega spektraalset lõppinversiooni, ja rida ütleb seda.
  • Valikulised ruutjuurteed muutumatute vaikeväärtuste kõrval: fim::crlb_srif, batch_ls::gauss_newton_srif, orbit_determination::determine_orbit_batch_srif, lunar_combination::formal_covariance_srif, precise_od::fit_srif ja cislunar_srif::srif_cross_validation_sqrt, uutel linalg_sr::weighted_lstsq ja covariance_from_sqrt_information. Igaüks ühtib oma vaikeväärtusega seal, kus mõlemad on täpsed (sisemine kontroll, rida pole; nende kohta ei väideta valideerimist). precise_od::fit delegeerib nüüd jagatud rutiinile; selle väljund ja iga stsenaariumi vaikeväljund on muutumatud.
  • Kuu tugisüsteemi kampaania astaku otsused: eelregistreeritud laiendatud täpsusega kontroll 40 päeva üle kinnitab iga otsustatava jaamaploki ja täisastakuga Helmerti otsuse. A priori piir ei suuda kinnitada 20 astakuvaest Helmerti päeva; täpses aritmeetikas on nende defekt geomeetriline, läve 1e-9 asudes kampaania omaväärtuste suhete loomulikus vahemikus. Rida pole.
  • Laiendatud täpsusega kampaania rea väide on kitsendatud kujule „halvima juhu piires“ ja selle jaamad-fikseeritud nõrgima suuna kontroll mõõdab nüüd päris nurka (6.6e-16 rad; võrdlusoperaator muutus acos-ist kõõluks, lävi mitte).
  • Uuendused: puuduvad. Ükski golden-fail ega avaldatud joonis ei muutu; rida „Kuu tugisüsteemi datum vaatluskampaaniast“ on muutumatu ja jääb MODELLED (asutaja otsus 2026-10-02, variant A).

D4, JPL kerneli efemeriidi selgroog, faas 1 (neli uut VALIDATED rida: 228 -> 232 rida, 112 -> 116 valideeritud).

  • NAIF-i kerneli lugejal on oma rida. naif_kernel (DAF-konteiner, SPK tüüp 2, binaarne PCK tüüp 2) ühtib SPICE Toolkitiga (CSPICE N0067 läbi spiceypy 8.2.0) ja ANISE-iga 0.10.6 kõigil 600 DE440 olekul ja 200 Kuu orientatsiooni pöördel juhuslikul ruudustikul, mis on tõmmatud eelregistreerimise commiti enda räsist (abcd9133), läviväärtuste sees, mis on eelnevalt tuletatud kahekordse täpsusega Tšebõšovi hindamisest (halvim 0,6 % lävest, 1.95e-3 m). Rida väidab, et mootor loeb JPL-i kerneleid õigesti, mitte seda, et DE440 või analüütiline seeria on täpne (tests/naif_reader_spice_oracle.rs).
  • ephem_provider::KernelEphemeris: DE440 (või mis tahes tüübi 2 SPK) asendid läbi mootori enda lugeja, kahest osast koosnevate TDB epohhidega ja kerneli SHA-256 aruannete jaoks säilitatuna; see ei asenda kunagi planeeti süsteemi barütsentriga. LunisolarSource laseb geomeetriateel valida analüütilise seeria (vaikimisi) või kerneli.
  • Valikuline kerneli Kuu liikidele lunar-llr-datum ja lunar-vlbi-fim: võti planetary_kernel_path loeb geotsentrilise Kuu keskpunkti kernelist; midagi muud ei muutu ja aruanne saab ploki moon_ephemeris, mis nimetab kerneli ja selle SHA-256. Ilma võtmeta on mõlemad aruanded baitideni identsed varasemaga.
  • Kuu pinnapunkti kovariatsioon kerneliteel (uus VALIDATED rida): kui iga jaam on fikseeritud ja majakas DE440 Kuul, ühtib majaka kovariatsioon SPICE valguse aja Jacobi maatriksiga (halvim 1.7e-3 1 % läve vastu) ja NumPy pöördmaatriksiga (4e-14 1e-9 vastu), eelregistreeritud 4a51256 (tests/lunar_vlbi_surface_point_spice_oracle.rs). Analüütilise tee rida jääb MODELLED: analüütilisel Kuul on selle väikseim majaka sigma 3,9 % sõltumatu etaloni omast madalam.
  • Kuu tugisüsteemi datum päris kampaaniast, kerneli Kuu keskpunkt (uus VALIDATED rida): 447 nägemata 2019-Q2 normaalpunktil, eelregistreeritud 830d945a enne ühegi toomist, ühtib datumi kovariatsioon kerneliteel muutumatu SPICE ja NumPy sõltumatu etaloniga 7.6e-5 piires 1 % ja 2 % läve vastu (tests/validate_llr_datum_kernel_moon_fresh.rs). Asutaja otsustas, et see rida edutatakse ainult värskete punktide põhjal; nähtud andmete diagnostika (c51f8b2) on tähelepanek, mitte tõend. Lävi ei eralda Kuu mudeleid: ka analüütiline Kuu läbib sama lõigu (halvim 3.8e-3), kavandatud mutatsiooni (kerneli Kuu tund hiljem) ei tuvastatud ja voltimisel läbis ka umbes 4 650 km vale Kuu keskpunkt (Kuu võetud ümber Maa-Kuu barütsentri). Rida väidab kovariatsiooni sellel teel, mitte Kuu keskpunkti, ja ütleb seda.
  • Päikese, Kuu, Merkuuri ja Veenuse asendid DE440-st UTC epohhidel (uus VALIDATED rida): KernelEphemeris::relative_position_utc ühtib Skyfield 1,54 omaga 600 asendil aastate 1973 ja 2026 vahel, halvim 2,96 m, eelregistreeritud läve (0bfafe6d) piires, mille seab kahe liikmega TDB − TT seeria (tests/kernel_ephemeris_skyfield_oracle.rs). Planeetide asendid saavad selle uue kerneli rea nüüd; Standishi rida ja planeetide kaaslaste rida on muutumatud ning kaaslased ootavad stsenaariumi, mis neid vajab (asutaja otsus).
  • Tähelepanekud: LLR datumi võrdluse ainus möödalask (z-nihke sigma 1,025 % 1 % vastu) langeb väärtusele 0,049 %, kui ainult Kuu keskpunkt loetakse DE440-st, nähtud andmetel (tests/validate_llr_datum_kernel_moon.rs); värskel 2019 lõigul läbib ka analüütiline Kuu, nii et 2015 möödalask oli selle kvartali geomeetria suhtes marginaalne. Analüütilised read „Lunar frame datum from a REAL observing campaign“ ja „Lunar-surface-point coordinate covariance … kept distinct from the Earth-station one“ jäävad MODELLED; nende sõltumatu etaloni tekstid osutavad nüüd kerneliitee ridadele.
  • lunar_ephemeris ei ütle enam, et mootoril pole binaarkerneli lugejat; see osutab lugeja reale ja selgitab, miks kosmoseaparaadi kernelid (tüübid 13 ja 21) tulevad endiselt Horizonsi kaudu.
  • Uuendused: puuduvad. Ükski golden-fail, avaldatud joonis ega olemasolev testiväärtus ei muutu; analüütilised aruanded lunar-llr-datum, lunar-vlbi-fim ja kõigi jaamade fikseeritud lunar-vlbi-fim on baitideni identsed varasemaga (tulemuse SHA-256 prefiksid 9927aac2, cf1d2671, 25c357e4).

D9, mõõdetud kellateek „Clock Atlas“ (kolm uut rida, üks VALIDATED: 232 -> 235 rida, 116 -> 117 valideeritud).

  • Mõõdetud kellateek (clock_library). Seadmekaardid (valge faas, valge, flicker ja juhusliku kõnni sageduse modulatsioon, lineaarne sageduse triiv ja valikuliselt ühe- kuni neljakordsed pöördekohased faasiliikmed), sobitatud nimetatud mõõdetud kella kirjele ja hinnatud väljajäetud andmetel; lünki arvestavad Alani ja Hadamardi dispersioonid; konditsioneerimisdetektor, mis logib iga lünga, faasi kõrvalekalde, faasihüppe, purske ja sagedushüppe ning ei tea midagi faili- ega päevapiiridest; kaardi teisendus ajapilu müramudeliks, laiendatud Kalmani kellamudeliks ja spuufimismonitori müratasemeteks. Lugejad RINEX- ja IGS-i kellafailidele, BIPM-i laborikaupa failidele ja Circular T jaotisele 1 (realdata::clk); koondatud hierarhiline vananemise ülempiir UTC(k) jaoks (utck_bound, veel hindamata).
  • Viivituse 1 autokorrelatsiooni müra tuvastamine (allan::lag1_noise_id, Riley ja Greenhall 2004), uus VALIDATED rida (Teek): ühtib allantools 2024,6 autocorr_noise_id omaga 140 juhul, täisarvud identsed, halvim erinevus 9.6e-13 1e-9 läve vastu (eelregistreeritud 2ec76864; tests/clock_library_lag1_noise_id_allantools.rs).
  • Mõõdetud seadmekaardid väljajäetud andmete ennustusega, uus MODELLED rida (tähelepanek): sobitus ühele kolmandikule, ennustatakse ülejäänud kahe kolmandiku Alani hälve teguri 1,5 piires (eelregistreeritud 2ec76864). GPS Block IIF värskel IGS aknal (2026-03-01 kuni 14): 10 11-st; G27 on kahetunnisel skaalal optimistlik (halvim tegur 1,510). Tseesium (piires, 1,070), OCXO (väljaspool, 2,348) ja strontsium (piires) on teatatud, mitte pimedad. JammerTesti vastuvõtja kaart ning Galileo maseri ja Deep Space Atomic Clocki kaardid on blokeeritud. ZED-F9P vastuvõtja TCXO mudeliklass 12 staatilisel Wroclawi jaamal (Zenodo 6488497) ebaõnnestub: 1 11 pimedast jaamast avalikustatud parandatud kordusel (tests/clock_library_device_cards_oracle.rs, tests/clock_library_f9p_cards_oracle.rs).
  • GPS Block IIF kaardid pöördekohaste liikmetega, uus MODELLED rida (tähelepanek): teisel värskel aknal (2026-04-01 kuni 14) 9 11-st läve piires; G03 (1,947) ja G25 (1,581) on optimistlikud, kuna nende väljajäetud kirjed on müras kui nende sobitusosad; perioodiliste liikmete väljajätmine ebaõnnestub kõigil 11 (eelregistreeritud fb475550; tests/clock_library_periodic_cards_oracle.rs).
  • M002, pardakella oleku hindamine, voor 3 (tähelepanek, jääb MODELLED): pärast külmutatud konditsioneerimisdetektorit täidab vooru 2 laiendatud filter, häälestus ja kriteeriumid muutumatuna kriteeriumid (a) ja (c) esimest korda kõigil 11 satelliidil; (b) ebaõnnestub G09 (0,894) ja G26 (0,876) puhul (eelregistreeritud fb475550; tests/clock_state_ext_igs_conditioned_oracle.rs).
  • M010, spuufimise tuvastamine, voorud 3 kuni 4b (jääb MODELLED): voor 3 blokeeritud (167 treeningepohhi JammerTesti seadme teistest sessioonidest 3600 vastu); ZED-F9P mudeliklassi kaardiga (voorud 4 ja 4b) tõstab kellamonitor nullist valehäiret enne algust kõigil 10 logitud algustel (voor 2: 86) ja 6 10 algusest tuvastatakse 10 s jooksul (voor 2: 4); samad neli jäävad hiljaks (tests/clock_library_tcxo_card_jammertest_oracle.rs).
  • M083, UTC(k) ülempiir, voor 3: eelregistreeritud prospektiivselt (fb475550) Circular T väljaannetel alates 465, veel käitamata (tests/utck_bound_prospective_oracle.rs).
  • Sõltumatu etaloni keskkond: Wroclawi ZED-F9P kirje on andmevärava taga kataloogis $KSHANA_ORACLES/data/wroclaw_f9p (CC BY 4,0, umbes 1,5 GB); IGS kellafikstuurid on kaasatud (IGS tooted, viitega).
  • Uuendused: puuduvad. Ükski golden-fail, avaldatud joonis ega olemasolev testiväärtus ei muutu; M001 (holdover-i uuesti ankurdamine) ei rakendu, kuna ühtki kellaklassi ei edutatud.

D8, üks valideeritud levi-, tugisüsteemi- ja ajatee (kolm uut VALIDATED rida ja M131 edutatud: 235 -> 238 rida, valideeritud 117 -> 121).

Maa orbiidi liigid, mis kandsid oma kahe keha, sekulaarse J2 või ainult sideeraajaga mudeleid, jagavad nüüd ühte teed: SGP4/SDP4 elemendikomplektid kahest osast koosnevate Juliuse kuupäevadega, viidud GCRS-i ja ITRS-i (International Terrestrial Reference System) IAU (Rahvusvaheline Astronoomia Liit) 2006/2000A ahela kaudu, valikuliste Maa orientatsiooniparameetritega.

  • Uued sgp4::MeanElementSet, sgp4::SgpOrbit, sgp4::Eop, sgp4::teme_to_itrs_matrix[_eop] ja sgp4::gcrs_to_itrs_matrix[_eop]; Sgp4::new_at ja Sgp4::propagate_at võtavad kahest osast koosnevaid epohhe. Uued jd2::Jd2::from_utc_calendar (SOFA dtf2d konventsioon liigsekundi päevade jaoks), jd2::utc_to_tai, tai_to_utc, utc_to_ut1 (läbi TAI, nagu SOFA utcut1), tai_to_tt ja kahe osaga jd2::earth_rotation_angle.
  • Liigi leo-pvt polaarrežiim levib SGP4-ga ajahetkel 2026-01-01T00:00:00 UTC IAU ahelal (leo_fusion::polar::latitude_sweep_at võtab mis tahes epohhi); SGP4 Walkeri generaator pöörab Maaga seotud tugisüsteemi IAU ahela kaudu.
  • Liik passes käitab uut näiva läbimise ennustajat (passes::predict_passes_apparent, apparent_look_angles): SGP4 IAU ahelal, ITU-R P.834-9 murdumine ja allalingi valguse aeg (uued lülitid refraction ja light_time, vaikimisi sees), Maa orientatsiooniparameetrid (ut1_minus_utc_s, xp_arcsec, yp_arcsec, vaikimisi 0), ületused lahendatud 1e-7 s täpsusega ja kulminatsioon kuldlõike otsinguga. Geomeetriline passes::predict_passes on muutumatu.
  • tests/no_private_models.rs hoiab paketi geomeetria-, aja- ja levituumad vabana privaatsest Kepleri levist, sekulaarsetest J2 kiirustest või ainult sideeraajaga pöördest; nimetatud kiired tasemed ja füüsika, mis on rea teema, on põhjendatud erandid.
  • Uus VALIDATED rida „Two-part Julian dates and leap seconds on the Earth-orbit time path“: pyerfa 2.0.1.5 dtf2d/utctai/taiutc 224 ajahetkel ümber kõigi 27 liigsekundi 1e-6 s piires (eelregistreeritud e947e69d); halvim 1.9e-11 s.
  • Uus VALIDATED rida „One Earth-orbit path“: 232 elemendikomplekti TEME asendid python-sgp4 2,24 (Vallado etalon SGP4) vastu 6.1e-8 m piires (lävi 1 cm) ning GCRS -> ITRS ja TEME -> ITRS pöörded ERFA c2t06a, pnm06a ja ee06a vastu 2.9e-6 mas ja 0,41 mas piires (läved 0,1 ja 2 mas), Maa orientatsiooniparameetritega (eelregistreeritud 72ea9eb0). Avalikustatud: esimene käitus ebaõnnestus ajahetkel 2016-12-31T23:59:59,5 ühe pöördesekundi võrra; UT1 võeti UTC kvaasi-Juliuse kuupäevast liigsekundi päeval, mootor läheb nüüd läbi TAI ja teine käitus ühtib muutumatute lävedega.
  • M131 „LEO coverage and dilution of precision for polar and Arctic users against MEO GNSS“ muutub VALIDATED: Orekit 13.1.8 võtab mootori GCRS olekud, pöörab need ja arvutab nähtavuse ning DOP-i (NumPy mitme kellaga rühmade jaoks); asendid 6.8e-5 m piires (lävi 0,2 m), vaates olevate arv identne 4040/4040 valimil, mediaan DOP 2.3e-11 suhtelise piires.
  • Uus VALIDATED rida „Apparent ground-station pass prediction with refraction and light time“: Orekit 13.1.8 levitab samu elemendikomplekte TEME-s, mille see ehitab öeldud definitsiooni järgi, ITU-R P.834 murdumise ja selle valguse aja mõõtemudeliga, 60 juhu üle merepinna jaamades: 1210 läbimist, ületused 3.4e-6 s piires (lävi 5 ms), maksimaalne tõusunurk 5.5e-7 kraadi piires, näiv suund 8.8e-7 kraadi piires (lävi 1e-4 kraadi).
  • Tähelepanekud, hoitud kinnitatuna: esimesed täisväite võrdlused Orekitiga otsast lõpuni jätsid oma asendi- ja suunalävedest mööda, mitte mootori tõttu, vaid seetõttu, et Orekit 13.1.8 SDP4 erineb etalon-SGP4-st ringikujuliste (e = 0) sügavkosmose orbiitide puhul (kuni 67 m) ja selle vaike-TEME on ehitatud IERS 1996 (IAU 1980) nutatsioonile, umbes 72 millikaaresekundit IAU 2006/2000A ahelast (2,7 m LEO-l). Orekiti ITU-R P.834 koefitsient h*theta0^2 on 0,011380, kus soovitus trükib 0,01380; võrdlus on merepinnal, kus liige kaob, ja erinevus selle kohal on kinnitatud.
  • „Ground-station pass prediction (ground segment)“ jääb VALIDATED, selle väide kitsendatud geomeetrilisele passes::predict_passes; liik passes kuulub uuele reale.
  • Sõltumatu etaloni keskkond: Orekit 13.1.8 koos Hipparchusega 4.0.3, pyerfa 2.0.1.5, python-sgp4 2,24 (xval/d8-orekit13/setup.sh).
  • Uuendused: kaasapakitud scenarios/passes.toml kogupääs 1675 s -> 1659 s (viis läbimist nagu varem; parim maksimaalne tõusunurk 73,25 kraadi -> 70,08 kraadi) ja iga passes väljund nihkub uue teega (trükitud rida failis docs/examples/multi-tool-pipeline.md ja kirje passes failis docs/CAPABILITY.md ütlevad seda nüüd); kaasapakitud polar-arctic-leo-coverage GNSS VDOP ekvaatoril 1,19669 -> 1,19710, 89,9 kraadi juures 1,50645 -> 1,50590, liidetud VDOP 89,9 kraadi juures 1,14388 -> 1,14250 (avaldatud kahe kümnendkohaga arvud 1,20, 1,51 ja 1,14 on muutumatud). Ükski golden-fail ei muutu.
  • Veel suunamata: leo_pass, doppleri-, ühis- ja ajastusrežiimid leo-pvt ning leo_navmsg tõeline orbiit (nende mudelid asuvad failides leo_link::geometry ja leo_fusion::geom), ja Maa kujundused liigis constellation-design (nimetatud kahe keha kiire tase).

D6, LunaNet AFS etalongeneraator, LSIS V1.0 (neli uut rida, kaks VALIDATED: 238 -> 242 rida, valideeritud 121 -> 123).

  • LunaNet Augmented Forward Signal (AFS) etalongeneraator (lunar_afs), kinnitatud LunaNet Signal-In-Space Recommended Standard (LSIS) V1.0 kuupäevaga 29. jaanuar 2025 ja nimetades seda versiooni igas väljundis: 2492,028 MHz kandja; AFS-I BPSK(1) andmekanal 500 sümbolit sekundis oma 2046-chipise Goldi koodiga; AFS-Q BPSK(5) piloot oma 10230-chipise Weili primaar-, 4-chipise sekundaar- ja 1500-chipise tertsiaarkoodiga; kaadri identifikaatori 0 kaader (sünkroniseerimismuster, BCH (51, 8) alamkaader 1, CRC-24, kiirusega üks pool LDPC alamkaadrid 2 kuni 4, 60 korda 98 ploki põimur) täieliku alamkaadri 1 dekoodri ja min-sum LDPC dekoodriga, mis on kirjutatud ainult pariteedikontrolli maatriksist; ning baasriba IQ süntees tõesiltidega, kirjutatud SigMF salvestusena. Koodid genereeritakse standardi nihkeregistritest ja Legendre'i/Weili konstruktsioonidest. Midagi standardist kopeeritut ei levitata (sellel pole taaskasutustingimusi): AFS-Q primaarindeksid tulevad dokumendist IS-GPS-800J ja see, mida defineerivad ainult standardi lisad (AFS-I G2 viivitused, tertsiaarkoodid, LDPC alammaatriksid), loetakse käitamise ajal kohalikust vahemälust, mille xval/lunar-afs/fetch_lsis.sh täidab NASA majutatud PDF-ist, iga fail kontrollitud kinnitatud SHA-256 vastu (lunar_afs::lsis). Mudel on standardi järgimise võrdlusalus, mitte kanali-, leviku- ega lingieelarve mudel.
  • sigmf::meta_to_json_with_extensions ja sigmf::annotation_extension_fields: salvestus võib kanda nimeruumiga laiendusvälju, mis on deklareeritud väljal core:extensions.
  • Uus VALIDATED rida „LunaNet AFS baseband rendering against an independent generator, given its channel state“: LANS-AFS-SIM-i (BSD-2-Clause, commit 480c6bf3, S-riba ehitus) vastu null chipi mittevastavust PRN-ide 1 kuni 210 koodidel, null sümboli mittevastavust käituse kolmel kaadril ja normaliseeritud kompleksne korrelatsioon 0,999990 oma 23,9 s valimite üle (halvim 2 ms plokk 0,999948), enne võrdlust fikseeritud läve piires (eelregistreeritud 986ac280). See juhib renderdajat simulaatori enda kanali olekuga ega kata võimsuse jaotust kandja ja müra tiheduse põhjal ega SigMF-i ja 8-bitist kirjutamist.
  • Uus VALIDATED rida „LunaNet AFS frame channel coding, FID 0“: 6000-sümbolised kaadrid on LANS-AFS-SIM-i omadega sümbol sümboli haaval võrdsed (eelregistreeritud 986ac280); alamkaadri 1 kood reprodutseerib LSIS joonise 8 töötatud näite ja CRC-24 CRC-24/LTE-A kataloogi kontrollväärtuse.
  • Mõlemad edutatud read on LSIS vahemälu taga andmeväravaga: nende sõltumatu etaloni test jäetakse teatega vahele, kuni xval/lunar-afs/fetch_lsis.sh on käitatud.
  • Tähelepanek (uus MODELLED rida), „LunaNet AFS spreading-code generation“: standardi tabelitega ja lisa 3 failidega võrreldud 2 937 232 genereeritud chipist ja bitist erineb üks, „last 24 chips“, mille Tabel E-5 trükib tertsiaar-PRN 147 jaoks ja mis dubleerib PRN 151 lahtri, samas kui standardi enda lisa 3 fail ühtib generaatoriga. Nullmittevastavuse kriteerium jääb täitmata.
  • Tähelepanek (uus MODELLED rida), „LunaNet AFS closed-loop decodability“: kolm eelregistreeritud käitust PocketSDR-AFS-i vastu; kolmas täitis oma jälgimis- ja dekodeerimisläved täielikult, kuid mitte oma kaitset, et ainult trükkiv vastuvõtja ehitus reprodutseerib kinnitatud ehituse logi, kuna kaks muutmata vastuvõtja käitust erinevad juba oma hõivamiskirjetes.
  • Parandatud: liikide lunar_service (export_antenna.carrier_hz), lunar_jamming ja attack_surface vaikekandja oli ümardatud 2,4 GHz; see on nüüd LSIS-020 AFS kandja, 2492,028 MHz. Vana vaikeväärtuse korral oli vaba ruumi kadu alahinnatud 0,327 dB võrra.
  • Uuendused: puuduvad. Iga kaasapakitud stsenaarium nimetab oma kandja ja kõigi 138 stsenaariumifaili tulemused on baitideni identsed eelmise main-iga.

D7, päris Kuu IQ ja GPS LNAV (seitse uut rida, ükski pole VALIDATED: 242 -> 249 rida, valideeritud 123 muutumatu).

  • portable_math::FftPlan: segabaasiline kiire Fourier' teisendus (FFT), mille väljund on igal platvormil samad bitid; 8000- ja 24000-punktiliste teisenduste SHA-256 kinnitus läbib x86_64 ja wasm32-wasip1 peal (käitaja kataloogis xval/portable-fft-wasm/).

  • acquisition: paralleelne koodifaasi otsing diskreetitud IQ-l (pcps_acquire, pcps_grid) koherentse voltimisega, mittekoherentse akumuleerimisega, hii-ruut lävega kogu otsingu valehäire tõenäosuse jaoks ja lahtrite keskmistamise statistikuga ribapiiratud müra jaoks; refine, prompt_series koodi Doppleriga ning M2M4 ja ruudustiku tipu kandja ja müra tiheduse (C/N0) hindajad.

  • gps_lnav: IS-GPS-200 pärandnavigatsioonisõnumi (LNAV) kodeerija alamkaadritele 1 kuni 3, tabeli 20-XIV pariteediga ja väljadekooderiga.

  • realdata::ion_sdr: ION GNSS SDR Metadata Standardi (.sdrx) lugeja ja selle näidisfailid, kahe täiendi tasemete jaoks to_mid_rise.

  • realdata::lugre: LuGRE (Lunar GNSS Receiver Experiment) IQS partii päis, RAW, ACQ ja NAV telemeetria ning CLK failid ja kontroll, mis loetleb, kus .sdrx metaandmed on binaarpäisega vastuolus.

  • antenna::GainPattern2D ja moodulis earth_gnss_lunar yaw-juhitav kerekoordinaatsüsteem, saate asimuut ja nadiirist kõrvalnurgad ning transmit_side_db suhtelise C/N0 jaoks mõõdetud mustritega.

  • GPS LNAV navigatsioonisõnumi kodeerimine (uus rida, jääb MODELLED pärast integreerija järelkontrolli): 2. märtsi 2025 IGS edastusfailil, mida parsis ja dekodeeris RTKLIB v2.4.2-p13, läbivad kõik 960 sõna pariteedi, kõik 96 alamkaadrit dekodeeruvad ja kõik 608 edastatud täisarvu on võrdsed Kshana omadega (tests/gps_lnav_rtklib_integer_oracle.rs), kuid eelregistreerimine (d4d9eb9d) jõudis avalikule harule kaks sekundit pärast tulemust sisaldavat commiti, nii et järjestust „registreeritud enne faili toomist“ ei saa näidata ja rida ei edutata.

  • realdata::ion_sdr täidab sõnu kõrgeimast bitist (I LuGRE baidi kõrges poolbaidis; varasem lugemine andis konjugeeritud signaali), säilitab vana lugemise kujul SdrLayout::fill_lsb_first ja loeb sõnast laiemaid valimeid.

  • acquisition::refine_doppler_coherent: faasikoherentne Doppleri täpsustus (0,2 Hz RMS sagedusel 30 dB-Hz 200 ms jooksul simulatsioonis).

  • GPS L1 C/A gps-sdr-simi vastu: chipid ja pariteet bitthaaval täpsed; 230 1152 LNAV väljast erineb ühe ühiku võrra, kuna gps-sdr-sim kärbib seal, kus edastatud täisarv vajab ümardamist.

  • RTKLIB-i dekodeeritud LNAV: kogu pariteet ja alamkaadrid läbivad ning iga parameeter on poole kvandi piires; 41 skaleeritud väärtust erineb mõne ühiku võrra viimases kohas RTKLIB-i kümnendkonstandi 2^-43 kaudu, üle registreeritud läve.

  • LuGRE hõivamine GNSS-SDR 0.0.19 vastu: 266 266 otsust ühtib, 250 asusid samas lahtris; enamik positiivseid on artefaktid −0,5 keskmisest paljastes 4-bitistes tasemetes; C/N0 harul polnud samaaegseid lennuandmeid. Kaks partiid (OP5, OP12) jäeti eksikombel välja: nende metaandmed ühtivad nende päistega, kuid lugeja ei suutnud siis lugeda sõnast laiemat valimit.

  • LuGRE hõivamine orbiidilt ennustatud Doppleri vastu: valimivõimsuse otsusega ületab iga otsing ribapiiratud müral; lahtrite keskmistamise otsusega ühtivad tugevaimad paarid suuruselt vastupidise märgiga, näidates, et registreeritud I/Q järjekord on andmete konjugaat.

  • Pime hõivamine Kuu pinna partiidel: neli partiid hõivavad igaüks ühe satelliidi (ennustatud nähtav, valehäiret pole väärtusel 1e-7), ükski kahte, nii et Doppleri erinevuse lävel pole paari, mida hinnata.

  • Suhteline C/N0 Kuu kaugusel (M039 uuesti sõnastatud): 15 Block IIR/IIR-M kirjet ja üks paar, liiga vähe registreeritud läve jaoks.

  • Uuendused: puuduvad; ükski avaldatud arv, golden-fail ega dokumendijoonis ei muutunud.

  • M039 rida „Earth-GNSS at lunar distance“ sõnastab oma väite Kuu kaugusel uuesti suhtelise C/N0 kujul satelliitide vahel ühel epohhil pluss nähtavus (absoluutset C/N0 ei väideta); see jääb MODELLED. Ülataseme NOTICE kannab LuGRE CC BY 4,0 viidet.

Parandatud#

  • DE440 Kuu peatelgede orientatsioon interpoleeritakse nüüd geodeesiajoonel päevasõlmede vahel. Varasem elementhaaval interpolatsioon oli vigane kuni 2.0e-4 rad (340 m Kuu pinnal) iga päeva veerandpunktide lähedal, mitte „umbes 14 m“, nagu rida väitis. Selle kasutajad (Kuu laserkaugusmõõtmise geomeetria, Kuu datum, Kuu vea jälgitavus) saavad parandatud orientatsiooni.
  • Vooru 2 mootoriparandused, igaüks uuesti käitatud oma muutumatu eelregistreeritud tolerantsi vastu: EOP rea IERS-i vintage loetakse selle I/P lippudest, mitte tühjast Bulletin B plokist; snapshot_raim kasutab geodeetilist kohalikku taset; Kuu kiirustugisüsteemi sidumine kasutab ekvatoriaalraadiust, J2 ja pöörlemist; liu22 sobitus algab nullparandustest ilma prioriteetideta ja kasutab artikli keskmise liikumise kiirust; EO sõlmede vahe kannab J2 sõlme regressiooni; Costase tsükli libisemise aeg kasutab rho/4; ühine lahend rakendab paari edastatud rühmaviivitust; Kuu ühine lahend kasutab QR sammu; NTN piir hinnatakse tõelises asendis; konstellatsiooni kujunduse kella etalon on vaates olev madalaim konstellatsioon; DE440 orientatsiooniseeria hõlmab 2014-2030 ja annab väljaspool seda vea piiramise asemel.

Lisatud#

  • leo_navmsg::truth::TruthOrbit::from_ecef_states, tabuleeritud Maaga seotud olekutest ehitatud tõeline orbiit, mida kasutab päris orbiidi sobitaja võrdlus.
  • Ülaltoodud võrdluste testifailid ja fikstuurid, igaüks oma generaatori ja failiga NOTICE.md, mis annab allika, litsentsi, toomise kuupäeva ja SHA-256.
  • Voor 2: araim_reference::add_v42_protection_levels ja _ecef (ADD v4.2 veatuvastus, järgides Stanfordi MAAST-i ARAIM 2 jaoks, BSD-3 teade lähtekoodis); raim::snapshot_raim_fde; cw_dynamics::second_order_correction ja propagate_second_order; üheksa oleku INS-i veamudel inertial::coast::ErrorDynamics; lunar_vlbi::KernelGeometry osatuletised ja kerneliitee sisendid liigis lunar-vlbi; naif_kernel, SPK tüübi 2 ja binaarsete PCK kerneli lugeja; lunar_llr_geometry::llr_bcrs_one_way_m ITRF2020 jaamadega; Jacchia 1971 tihedus; solar_system::link_on mis tahes efemeriidipakkuja kohal; launch::site_rotation_speed_at; eo_payload::j2_nodal_period ja ground_track_spacing_equator_j2; batch_ls::gauss_newton_qr; precise_products (RINEX kell, ANTEX ja DCB lugejad).

[0.29.3] - 2026-10-01#

Paranduslik väljalase versioonil 0.29.2. Kshana Studio on ümber ehitatud kahe vaate ümber: Lihtne vaade, mis vastab esimesena ja selgitab lihtsate sõnadega, ning Täpsem vaade kogu töölauaga. Kaasas on kaks väikest parandust saidil kshana.dev. Mootor ei muutu: iga komplekti kuuluv stsenaarium annab versiooniga 0.29.2 baidi-baidilt identse tulemuse, välja arvatud versioonitempel.

Muudetud#

  • Kshana Studios on Lihtne vaade. Studio avaneb just sellel.
    • Vastus tuleb esimesena: stsenaarium avaneb oma tulemusega, mis on öeldud ühe selge lausega. Igal komplekti kuuluval stsenaariumil on oma lause, mis on kirjutatud selle järgi, mida see stsenaarium mõõdab.
    • Nähtaval on kuni viis seadet, need, mis vastust enim muudavad. Ülejäänud on jaotises „Täpsemad seaded“, mis on kokku volditud, kuni selle avada.
    • „Kuidas see arvutatakse“ selgitab meetodit mõne reaga ning „Teadlastele“ annab mootori enda arvud, stsenaariumi faili ja tulemuse taga oleva tõendi.
  • Kogu töölaud on Täpsem vaade. Kõik varasema Studio paneelid, diagrammid, ekspordid ja aruanded on seal.
  • Lüliti liigub kahe vaate vahel ja hoiab koha. Stsenaarium, vaade, milles viibiti, ja kõik muudetud seaded kanduvad üle. Studio jätab meelde, millist vaadet viimati kasutati. Saidilt ja dokumentatsioonist pärinevad lingid avavad Lihtsa vaate; link, milles on view=advanced, avab Täpsema vaate, ja iga varasem Studio link avab endiselt sama stsenaariumi ja vaate.
  • Kiirem esimene vaade aeglase ühenduse korral. Stsenaariumi salvestatud vastus joonistatakse enne ülejäänud Studio laadimist, nii et aeglase mobiiliühenduse korral ilmub vastus umbes kahe sekundiga, mitte umbes üheksaga.
  • Parem otsing. Otsing loetleb nüüd esimesena stsenaariumid, mille valdkond või pealkiri vastab sõnadele, enne stsenaariumeid, mis mainivad neid ainult failinimes või tekstis.

Parandatud#

  • Avalehe gloobus ei lähe enam tühjaks, kui vähendatud liikumine on sisse lülitatud. Kui süsteemi seade vähendatud liikumise jaoks oli sisse lülitatud, võis akna suuruse muutmine jätta tiitligloobuse tühjaks, kuni leht kerides liikus. Gloobus joonistatakse nüüd uuesti samas kaadris, kus suurus muutub.
  • Avalehe L-riba konsool selgitab oma tühja riba. Stsenaariumis „Watch a jammer take the band“ jäi GPS L5 / Galileo E5a paneel terveks minutiks tumedaks, mis tundus rikkena. Selles stsenaariumis ei saada sellel ribal ükski segaja ja satelliidisignaalid on müratasemest allpool, nii et seal ei tõuse miski sellest kõrgemale. Vaikne silt ütleb seda nüüd igas paneeli lõigus, kus midagi pole müratasemest kõrgemal (L5 / E5a paneel ja L2C paneel enne, kui selle mürasegaja algab), koos iga riba C/N0 ja lukustusolekuga samast jooksust. See asetatakse ainult sinna, kus miski pole müratasemest kõrgemal, nii et see ei kata kunagi segaja energiat.

0.29.2 - 2026-10-01#

Paranduslik väljalase versioonil 0.29.1. See eemaldab dubleeritud koodi LEO navigatsioonisõnumi, liitmise ja spektri moodulitest, lisab saidile kshana.dev heleda teema, viib Kshana Studio omaenda aadressile, muudab saidi loetavaks otsingumootoritele ja tehisintellekti assistentidele, parandab mitu väikest asja Studios ning laseb npm-i väljalasetel avaldada ilma salvestatud märgita. Mootori väljund ei muutu: iga komplekti kuuluv stsenaarium annab versiooniga 0.29.1 baidi-baidilt identse tulemuse, välja arvatud versioonitempel.

Lisatud#

  • Heleda teema saidile kshana.dev. Iga lehte saab lugeda heleda või tumedana. Sait järgib lugeja süsteemiseadet ja sellel on selle muutmiseks lüliti.
  • Otsingumootorid ja tehisintellekti assistendid saavad saiti lugeda. Igal lehel on nüüd oma pealkiri, kirjeldus, kanooniline aadress, sotsiaalkaardi märgendid ja schema.org struktureeritud andmed ning lihttekst lõikude jaoks, mille joonistab skript. Sait avaldab faili robots.txt, faili sitemap.xml, milles on iga lehe viimase muutmise kuupäev, ning failid llms.txt ja llms-full.txt (lühike ja täielik lihttekstijuhend tehisintellekti assistentidele) ja IndexNow võtme, et juurutus saaks otsingumootoritele teatada, mis muutus.
  • npm-i väljalasked saab avaldada ilma salvestatud märgita. npm-i töö käitab nüüd Node-i 24 ja npm-i 11.5.1 või uuemat, mis toetavad npm-i usaldusväärset avaldamist: npm vahetab väljalasketöö GitHubi identiteedi lühiealise mandaadi vastu. Saladus NPM_TOKEN töötab endiselt ja seda kasutatakse seni, kuni see on seatud, nii et midagi ei muutu enne, kui usaldusväärne avaldamine on npmjs.com-is paketi jaoks sisse lülitatud. Sammud on loetletud failis docs/RELEASING.md.

Muudetud#

  • Avalehe pealkiri on gloobuse peal loetav. Pealkirja ja selle teksti taga on nüüd pehme vari, mis tuhmistab animeeritud gloobuse orbiidijooned ja satelliidipunktid seal, kus need pealkirja ületavad.

  • Kshana Studiol on oma aadress: https://kshana.dev/studio/. Iga link saidil ja dokumentatsioonis viitab sinna. Vana aadress /playground/ töötab endiselt ja suunab uuele, säilitades lingis oleva stsenaariumi, vaate ja muud seaded.

  • Studio parandused. Mootori fail laaditakse alla üks kord kahe asemel. Allalaadimise ajal näitab Studio stsenaariumi salvestatud tulemust kohe, märgitud salvestatuks, tühja ekraani asemel. Telefonis on päis üks kompaktne rida. Põhinäitajad murduvad kaks rea kohta, nii et ükski ei jää ekraani servast välja. Väljade sildid kasutavad stsenaariumi enda sõnu, kõrval on välja nimi, ja otsing leiab väljad kummagi järgi.

  • Vähem dubleeritud koodi. LEO navigatsioonisõnumi ühikute tabel kirjutas samad kümme SISRE statistikaarida neljale sobitusekokkuvõttele. Nüüd kirjutab need üks kord makro. Kaks spektri koskdiagrammi jagavad ühte ajatelge, värviriba ja C/N0 riba paneeli. Põhivõrgu allvalimine taaskasutab funktsiooni downsample_grid ja Simpsoni integraal taaskasutab funktsiooni navsignal::simpson. LEO läbimise liigi kaks sisenemispunkti jagavad ühte häälestusetappi. Moodul leo_link::geometry impordib vektoriabilised moodulist leo_fusion::geom neid kopeerimata. Täpsem aruanne impordib API aruande HTML-i paomääramise kopeerimata. Kõik 139 stsenaariumifaili kataloogis scenarios/ käitati versioonil 0.29.1 ja sellel koodil ning iga väljundfail on baidi-baidilt identne.

  • Tabelitel leo-navmsg ja leo-pvt units on omad failid. Need viidi välja moodulitest, mis sisaldavad ka loogikat, faili src/leo_navmsg/units.rs ja faili src/leo_fusion/pvt_units.rs. PVT_UNITS säilitab oma avaliku tee. Ainult need kaks tabelifaili liituvad deklaratiivsete kataloogide kopeerimise ja kleepimise tuvastamise erandite hulgas failis sonar-project.properties, mida kontrollib tests/sonar_cpd_exclusions_are_justified.rs.

Parandatud#

  • README CI märk näitab main-harusse tehtud push'ide tulemust. Märk luges kõigi sündmuste jooksutusi main-haru peal, nii et see võis näidata „failing“, kui iga push'i jooksutus oli roheline; nüüd küsib see ainult push'ide jooksutusi (event=push).

0.29.1 - 2026-10-01#

Paranduslik väljalase versioonil 0.29.0: mõõdetud katvuse arv, projekti nimerida saidil kshana.dev, kiirem katvuse töö ja uuendatud README. Mootori väljund ei muutu: iga stsenaarium annab sama tulemuse kui versioonil 0.29.0.

Avaldatud arvude parandused#

  • Ridade katvus: ~96 % → ~95 %. Katvuse töö mõõtis uuesti välja antud koodi 0.29.0 (commit db796dd, CI jooksutus 36809850252, 2026-10-01): 95.35 %, 55 970 rida 58 697-st kataloogis src/. Avaldatud arv oli 95,63 % (37 697 rida 39 419-st), mõõdetuna commit'il b1d350d enne versiooni 0.28.0; see ümardus väärtuseks ~96 %. Uus arv ümardub väärtuseks ~95 %, nii et iga pind, mida tests/coverage_figure_doc_sync.rs kinnitab, liigub koos: docs/COVERAGE.md, README märk, Evidence'i rida ja CI tabel, märgid crates.io-s, PyPI-s ja npm-is, tehniline aruanne ning saidi kshana.dev katvuse leht. Alampiir 85 % ei muutu.

Lisatud#

  • Nimerida saidil kshana.dev. „Kshana · क्षण · the precise instant“ avab nüüd avalehe tiitli ja asub iga lehe jaluses kaubamärgi all. Sait kshana.dev ei tee endiselt ühtki päringut teisele hostile: devanagari kiri on isehostitud Noto Sans Devanagari alamhulk kolmest tähest sõnas क्षण (1 692 baiti, web/fonts/, koos selle SIL Open Font License'i tekstiga ja selle SHA-256-ga failis web/fonts/FONTS.json). web/tools/fetch_third_party.py õppis salvestama Google Fontsi text= alamhulka sisupõhise aadressiga failinime alla.

Muudetud#

  • Saidi lingid maanduvad sinna, kuhu nad osutavad, puhaste aadressidega. Link jaotisele asetab selle jaotise nüüd päise alla, nii telefonis kui töölaual: Missions-sektori link avab selle sektori ja selle paneeli ülaosas; Capabilities'i ja Editions'i lingid hoiavad oma koha, kuni nende kohal olevad diagrammid joonistuvad; Editions ei lisa enam teist päise nihet; ja link dokumentatsioonilehe kokku volditud ossa avab selle. Iga leht on lingitud oma puhta aadressiga (/evidence#research, /docs/changelog, / avalehe jaoks) ning kanoonilised lingid, saidikaart ja vanade aadresside ümbersuunamised nimetavad samu; aadressid .html töötavad endiselt. Research'il on oma link päises Evidence'i ja Developers'i vahel ning jaluses. Dokumentatsioon ei näita enam teekaarti (ROADMAP.md jääb hoidlasse): Project'i rühm on Changelog, Licensing, Security, Contributing, Governance ja Code of conduct ning Glossary viidi rühma Get started.
  • Katvuse töö on kiirem. Versioonil 0.29.0 kulus sellele 143 minutit tervisliku 91 vastu kuni
    1. Fuzzer tests/property.rs, eelmine põhjus, võttis neist 4. Komplekti kuuluv korpus kasvas 74-lt 139 stsenaariumini ja kolm testibinaari käisid kõik läbi ühe faili kaupa (determinism kaks korda, advanced_report ja animation üks kord): kokku 37 minutit katvuse instrumenteerimisega, versioonil 0.27.2 oli see 3. Nüüd jagavad need faili tests/support/corpus.rs, mis käitab stsenaariumipõhise töö igal tuumal ja annab tulemused tagasi sorteeritud järjekorras; iga stsenaarium ja iga väide jääb alles. arm64 sülearvutil, silumisehitus: determinism võtab 143 s 14 tuumal, versus 612 s käsuga KSHANA_CORPUS_THREADS=1 (vana järjestikune läbikäik).
  • README, uuendatud. See algab sama nimereaga kui sait; Studio ekraanipildid on uuesti tehtud Studiost 0.29.1, uue pildiga Studiost telefonis ja selle alumise sammuribaga; uus riba „The site“ näitab saidi kshana.dev kolme lehte versiooni 0.29.1 ehitusest (tools/capture_site_shots.mjs, koostanud tools/readme_shots.py ja salvestatud faili docs/assets/readme/site/SHOTS.json); katvuse arv on ~95 %; ja uurimistöö joonise alt-tekst, mis kordas arhitektuurijoonise oma, kirjeldab nüüd artikleid. Päisemärgid on väiksemad ja lühemad (18 px kõrged; „~95%“, „83/223“, „quality“, „AGPL-3.0“, „zenodo.20528627“), nii et üksteist mahub kahele reale; iga link ja alt-tekst säilitab oma täieliku tähenduse.
  • Konteineri kujutise töö saab 90 minutit. Versioonil v0.29.0 jõudis kujutise kshana-mcp emuleeritud linux/arm64 ehitus vanale 45-minutilisele piirile oma viimase crate'i kompileerimisel, nii et kujutis, MCP registri kirje ja kanali kontroll ei avaldatud. Piir on nüüd 90 minutit; kujutis ei muutu.
  • Kaheksa ujukomakonstanti ümber rühmitatud failides src/ephem.rs ja src/sgp4.rs (0.323_273_64 → 0.323_273_640): SonarQube Cloud luges viimase rühma _64 või _32 puuduvaks järelliiteks f64 või f32 (reegel S7454). Väärtused on samad arvud, nii et ükski tulemus ei muutu.

0.29.0 - 2026-10-01#

Kaksteist uut stsenaariumi liiki ja kolm uut viisi jooksutust lugeda. Mootor katab nüüd raadiospektri, kogu päikesesüsteemi, mis tahes keha ümber olevad konstellatsioonid, kampaaniad, mis seovad stsenaariumid üheks missiooniks, ning positsioneerimise, navigatsiooni ja aja (PNT) madalalt Maa orbiidilt (LEO) signaalist asendilahenduseni. Iga jooksutuse saab kirjutada ka animatsiooniks, täielikuks aruandeks ja teiste tööriistade jaoks mõeldud koostalitlusfailide komplektiks.

Mootori ümber: ümber kujundatud kshana.dev (mitmeleheline sait ja uus Kshana Studio töölaud, mis käitab brauseris kõiki võimekusi), ümber kirjutatud README, neliteist tööriista Model Context Protocoli (MCP) serveris, brauseriehitus, mis annab samad arvud kui natiivne, ja avalik leht Kshana Pro jaoks.

0.28.0 0.29.0
Stsenaariumi liigid 63 75
Stsenaariumifailid (pluss üks komplekti manifest) 77 138, millest 132 on komplekti kuuluvad käsu kshana example jaoks
Kontrollimaatriksi read 174 223
neist VALIDATED välise etaloni vastu 66 83
millest MODELLED (öeldud mudel, kontrollitud sisemise kooskõla suhtes) 104 136
millest PARTNER (vajab partneri riistvara või andmeid) 4 4

Kust kasv tuleb:

Valdkond Liigid Stsenaariumifailid Maatriksi read (valideeritud + modelleeritud)
Spekter 1 1 3 (1 + 2)
Päikesesüsteem ja positsioneerimine mis tahes keha ümber 2 3 6 (2 + 4)
Konstellatsiooni kavandamine 1 3 3 (2 + 1)
Kampaaniad 1 5 3 (0 + 3)
Mere-, maantee- ja raudteestsenaariumid 0 5 0
Animatsioon, aruanded, koostalitluseksportid 0 0 0
LEO signaalikavandid ja mitmeribaline spekter 1 4 4 (2 + 2)
LEO ülelend ja lingibilanss 1 6 9 (6 + 3)
LEO navigatsioonisõnum 1 5 9 (3 + 6)
LEO positsioneerimine, ajastus ja liitmine 3 8 8 (1 + 7)
LEO otsast lõpuni ahel 1 3 1 (0 + 1)
LEO vastupidavus, fookusvaldkonna ja lõppkasutaja stsenaariumid 0 18 3 (0 + 3)
Lisatud kokku 12 61 49 (17 + 32)

LEO võimekus on süsteemist sõltumatu: see töötab üldistel, öeldud parameetritel ega vaja nimetatud süsteemi. Nimetatud süsteemid on valikulised eelseaded, igaüks omas failis oma avaliku allikaga. Üks eelseade, Celeste IOD (orbiidil demonstratsioon), kasutab arve, mis esitati ESA NAVISP LEO-PNT töötoas, 2026 (ESA on Euroopa Kosmoseagentuur; NAVISP on selle navigatsiooni innovatsiooni ja toetuse programm); see asub ühes failis src/celeste_iod.rs koos oma viie ainult hoidlas oleva stsenaariumiga, nii et seda saab tagasi hoida ilma lähtekoodi muutmata, ja ühtki selle töötoa arvu ei korrata selles muutuste logis.

Enne uuendamist tuleb lugeda jaotist „Avaldatud arvude parandused“. Üks mootori väljund muutub (stsenaariumi ephemeris-id inertsiaalsüsteemi veerud pärast märgiparandust nutatsioonimaatriksis) ja dokumentatsiooni audit parandas arve, mida varasemad dokumendid olid trükkinud.

Selles kirjes kasutatud lühendid

Olekud: VALIDATED tähendab kontrollitud sõltumatu välise sõltumatu etaloni vastu (avaldatud tabel, teise rühma tarkvara või mõõdetud andmed); MODELLED tähendab öeldud mudelit, mida on kontrollitud ainult sisemise kooskõla suhtes; PARTNER tähendab, et kontroll vajab partneri riistvara või andmeid.

Lühend Tähendus
3GPP, 5G, NTN 3rd Generation Partnership Project (kolmanda põlvkonna partnerlusprojekt); viienda põlvkonna mobiilivõrk; mittemaapealne võrk
AD, BC kalendriajastud (anno Domini, enne Kristust)
AIAA American Institute of Aeronautics and Astronautics (Ameerika Aeronautika ja Astronautika Instituut)
AltBOC, BOC, BPSK, MBOC alternatiivne binaarne nihkekandja; binaarne nihkekandja; binaarne faasmanipulatsioon; multipleksitud binaarne nihkekandja (signaali modulatsioonid)
ATOMIC Autonomous Time and Orbit Determination for Microsatellite Constellations (avaldatud LEO efemeriidimudel)
C/A, L1, L2, L2C, L5 jämekoodi ehk omandamiskood ning ülemaailmse positsioneerimissüsteemi kandelaine ja tsiviilsignaali nimed
C/N0 kandelaine ja müratiheduse suhe
CIO Celestial Intermediate Origin (taevane vaheorigo)
CLI käsurealiides
CRC-24Q 24-bitine tsükliline liiasuskontroll (Qualcommi polünoom)
CSAC kiibimõõtmetes aatomkell
CSS, HTML, SVG, XML Cascading Style Sheets; HyperText Markup Language; Scalable Vector Graphics; Extensible Markup Language
CSV, JSON, PDF, TOML, URL komadega eraldatud väärtused; JavaScript Object Notation; Portable Document Format; Tom's Obvious Minimal Language; uniform resource locator (ühtne ressursiaadress)
CW pidevlaine
CZML, KML, GeoJSON Cesium Language; Keyhole Markup Language; Geographic JSON (kaardi- ja gloobuseformaadid)
DE441 Jet Propulsion Laboratory arendusefemeriid 441
DOI digitaalne objektitunnus
DOP, GDOP, PDOP, HDOP, VDOP täpsuse halvenemise tegur: geomeetriline, asendi, horisontaalne, vertikaalne
E1, E5, E5a, E5b Galileo signaalide nimed
E3F ülemaailmse positsioneerimissüsteemi konstellatsioonitabeli pesa nimi
ECEF Maa keskne, Maaga seotud
EE ekvinoktsiumide võrrand
EGM2008 Earth Gravitational Model 2008
EIRP ekvivalentne isotroopselt kiiratud võimsus
ERFA, SOFA Essential Routines for Fundamental Astronomy; Standards of Fundamental Astronomy (astronoomia etalonteegid)
ESA, NAVISP Euroopa Kosmoseagentuur; selle navigatsiooni innovatsiooni ja toetuse programm
FDMA sagedusjaotusega hajusjuurdepääs
GCRF, GCRS Geocentric Celestial Reference Frame (geotsentriline taevane tugisüsteem); Geocentric Celestial Reference System (geotsentriline taevane tugisüsteem)
GLONASS Venemaa ülemaailmne satelliitnavigatsioonisüsteem
GNSS, GPS ülemaailmne satelliitnavigatsioonisüsteem; ülemaailmne positsioneerimissüsteem
IAU Rahvusvaheline Astronoomiaunioon
ICD, OS SIS ICD, OS SDD liidese juhtdokument; Galileo avatud teenuse kosmosesignaali liidese juhtdokument; Galileo avatud teenuse teenuse määratluse dokument
ICRF International Celestial Reference Frame (rahvusvaheline taevane tugisüsteem)
IMO Rahvusvaheline Mereorganisatsioon
INS, MEMS inertsiaalnavigatsioonisüsteem; mikroelektromehaaniline süsteem
IOD orbiidil demonstratsioon
IQ samafaasiline ja kvadratuurne
IS-GPS-200 ülemaailmse positsioneerimissüsteemi liidese spetsifikatsioon
ISS Rahvusvaheline Kosmosejaam
ITRF, ITRS, PEF, TEME International Terrestrial Reference Frame; International Terrestrial Reference System; pseudo-Earth-fixed (näiv Maaga seotud); tegelik ekvaator, keskmine ekvinoktsium (tugisüsteemid)
ITU, ITU-R Rahvusvaheline Telekommunikatsiooniliit; selle raadiosidesektor
J/S segaja ja signaali suhe
J2 kuni J6, J2000 gravitatsioonivälja tsoonilised harmoonikud; epohh 2000-01-01 12:00
JPL Jet Propulsion Laboratory
LEO, MEO madal Maa orbiit; keskmine Maa orbiit
MBSE mudelipõhine süsteemitehnika
NEES normaliseeritud hindamisvea ruut
NeQuick-G Galileo ionosfäärimudel
OEM, SP3, TLE Orbit Ephemeris Message; Standard Product 3 (täppisorbiidid); kaherealine elementide komplekt
PNT, PPP positsioneerimine, navigatsioon ja aeg; täppispunktpositsioneerimine
PSD, SSC võimsusspektri tihedus; spektraalse eraldatuse koefitsient
RAIM, SQM vastuvõtja autonoomne terviklikkuse seire; signaali kvaliteedi seire
RINEX, RTCM Receiver Independent Exchange Format (vastuvõtjast sõltumatu vahetusformaat); Radio Technical Commission for Maritime Services
RMS ruutkeskmine
RTKLIB avatud lähtekoodiga GNSS-i positsioneerimisteek, mida kasutatakse siin sõltumatu etaloni rollis
SGP4 Simplified General Perturbations 4 (kaherealiste elementide komplektide orbiidimudel)
SHA-256 Secure Hash Algorithm, 256-bitine
SigMF Signal Metadata Format
SISRE kosmosesignaali vahemaaviga
SPS PS Standard Positioning Service Performance Standard
SRTM Shuttle Radar Topography Mission
STK Systems Tool Kit (selle efemeriidifailiformaat .e)
STL Satellite Time and Location
SVID kosmoseaparaadi tunnus
T/P/F Walkeri konstellatsiooni satelliitide koguarv, orbiiditasandid ja faasinihe
TEC elektronide koguhulk
UHF ülikõrgsagedus
UTC ülemaailmne koordineeritud aeg
WGS 84 World Geodetic System 1984
X1, X5 Xona Pulsari süsteemi signaalide nimed

Avaldatud arvude parandused#

Muudetud avaldatud arv on parandus ja see kirjendatakse, mitte kunagi ei parandata vaikselt. See väljalase sisaldab ühte mootori väljundi parandust ja mitut dokumentatsioonis trükitud arvu parandust.

Mootori väljund

  • TEME→GCRS teisendus pööras 2·Δψ võrra: nutatsioonimaatriksil oli Δψ märk vastupidine. nutation::numat ehitas Rx(−(ε̄+Δε))·Rz(Δψ)·Rx(ε̄), kus SOFA funktsioon iauNumat ehitab Rx(−(ε̄+Δε))·Rz(−Δψ)·Rx(ε̄), nii et nutation_matrix, nutation_matrix_2000a, teme_to_gcrs ja gcrs_to_teme pöörasid kaks korda pikkuskraadi nutatsiooni võrra, umbes 25 kaaresekundit. Kõik ahela kontrollid olid omaduspõhised testid (õige pööre, edasi-tagasi teisendus, nullist erinev nutatsiooni panus), mille märgiviga läbib; otsast lõpuni Vallado test katis TEME→PEF, TEME→ITRF ja GCRS→ITRS, kuid mitte TEME→GCRS. Vallado näite (AIAA 2006-6753, 2004-04-06) korral eksis ahel avaldatud GCRF-ist 1 145 m; nüüd jääb see sellest 0,11 m kaugusele ja maatriks võrdub ERFA funktsiooniga numat täpsusega 1e-14. tests/frame_reference_vectors.rs::teme_to_gcrs_matches_vallado_gcrf ja nutation::tests::nutation_matrix_matches_erfa_numat mõlemad ebaõnnestuvad vana märgi korral. CIO (Celestial Intermediate Origin) kooskõlatest failis src/cio.rs oli sellest tulenenud ~130 m lahknevuse omistanud väärtusele „≈ 2·EE“; jääk on nüüd 5 cm ja selle piir on pingutatud 250 m-lt 1 m-ni. See muudab avaldatud arve, mis siin parandusena kirjendatakse: stsenaariumi ephemeris-id veerud gcrs_r_m ja gcrs_v_m_s (umbes 0,8–1,0 km komplekti kuuluva ISS-i (Rahvusvaheline Kosmosejaam) stsenaariumi puhul; selle TEME, Maaga seotud, jälje, vaatenurga ja Doppleri veerud ei muutu) ning Propagator::position_in_frame / state_gcrs GCRS-i ja ITRS-i tugisüsteemide jaoks. Ükski komplekti kuuluva stsenaariumi kokkuvõtterida, diagramm ega golden-räsi neid veerge ei loe. Uued koostalitluseksportid kasutavad parandatud ahelat: esimese orbit-sgp4-gps satelliidi CZML-asend ühtib sama TLE ERFA-teisendusega (propageeritud Pythoni paketiga sgp4) täpsusega 2,3 cm.
  • Stsenaariumi leo-navmsg-id, natiivselt ja brauseriehituses. See stsenaariumi liik arvutab nüüd iga transtsendentse funktsiooni ühe teisaldatava matemaatikateegi kaudu, nii et selle kaader on samad baidid igal platvormil ja igas ehituses (režiimis Fixed). Iga leo-navmsg arv liigub sellega kaasa, samuti leo-pnt-chain etapp navmsg. Stsenaariumi liik on selles väljalases uus, nii et midagi varasemast väljalasest ei liigu, kuid enne parandust trükitud arvud liiguvad: failis docs/LEO-NAVMSG.md oli kodeerimise ja dekodeerimise stsenaariumi kontrollväärtus 0x110315 ja nüüd on 0x19105F ning selle dekodeeritud sõnumi SISRE on 0,129 cm. Saidil kshana.dev näitas Missions'i kaart stsenaariumile leo-navmsg-fit-interval-trade halvimaks vahemaaveaks 1,6 mm 60 s sobitusega ja 40,3 mm 900 s sobitusega; sait ehitatakse nüüd selle väljalaske mootorist ja näitab 1,8 mm ja 46,6 mm.
  • Segamise jalajälje kaart saidil kshana.dev (Missions). Selle 875 lahtrist on iga üks stsenaariumi maritime-strait-jamming jooksutus, kus on muudetud ainult vastuvõtja asendit. Lahtrid arvutatakse nüüd samadest kolmekohalistest koordinaatidest, mille lahtri link „open this run“ annab Kshana Studiole, nii et lahter näitab täpselt seda, mida selle link reprodutseerib. 30 lahtri keskmine segaja ja signaali suhe (J/S) liigub 0,1 dB võrra, üles või alla; ühegi lahtri jälgimise kättesaadavus ei muutu. Mootor annab versioonides 0.28.0 ja 0.29.0 iga lahtri jaoks identsed tulemused.
  • Algväärtusega ümbervalim WebAssembly (WASM) paketis. Brauseriehitus tõmbas samast algväärtusest (seed) (režiimis Fixed) teistsugused bootstrapi ja segamise indeksid kui natiivne ehitus. Brauseris oli stsenaariumi quantum-anomaly-detect-id kõvera aluse pindala vahemik [0.9901265, 0.9938305] ja nüüd on see natiivne [0.99035875, 0.993861]. Ükski natiivne arv ei liigu.

Dokumentatsioonis trükitud arvud

Dokumentatsiooni auditeeriti sõna-sõnalt selle väljalaske mootori jooksutuste vastu. Kui trükitud arv jooksutusega ei ühtinud, parandati dokumenti ja iga parandus on siin loetletud kujul vana → uus. Allpool on mootori väljund igal juhul muutumatu; dokument oli seda valesti lugenud, valesti ümardanud või see oli aegunud.

  • Spektri, konstellatsiooni, kampaania, animatsiooni, aruande ja koostalituse lehtede dokumentatsiooni audit ning uus docs/SOLAR-SYSTEM.md. Iga arv jooksutati uuesti selle mootoriga. Kaks avaldatud arvu liigub: docs/CONSTELLATION-DESIGN.md andis 5 000 satelliidiga katvuse testi kohta „umbes 0,13 s silumisehituses“; see ei reprodutseerunud (1,24 s koormatud sülearvutil), nii et leht annab nüüd eelfiltri osakaalu, mille test trükib (9,9 % arvust 19 440 000 paaritesti), ja väljalaskebinaari 0,14 s komplekti kuuluva leo-pnt-mega-shell jaoks. Sama leht andis E3F-i ületuse kohta „0,050 kraadi vale“; ükski test seda arvu ei trüki, nii et leht väidab nüüd ainult 0,06 kraadi lävendit, mida test jõustab, ja selle taga olevat tuletust 7,30 versus 7,36 kraadi. Mootori väljund ei muutu.
  • LEO-PNT dokumendid: parandatud avaldatud arvud (uuesti jooksutatud selle väljalaske mootoriga). docs/LEO-SIGNAL.md ribade kompromiss: stsenaariumi generic-s esimese järgu ionosfääriviivitus on 3,24 m (trükitud oli 3,25 m) ja stsenaariumil generic-c-wide 0,77 m (oli 0,78 m). docs/LEO-NAVMSG.md kodeerimine ja dekodeerimine: dekodeeritud sõnumi SISRE oli trükitud 0,119 cm, kus jooksutus andis 0,122 cm; leht trükib nüüd 0,129 cm, arv pärast platvormist sõltumatuse parandust jaotises Fixed allpool. docs/LEO-PASS.md LEO ja GNSS-i läbimise võrdlus: 32 dB vähem vabaruumi sumbumist läbimise tipus (oli „26 kuni 32 dB“). Signaali ja läbimise arvude puhul mootori väljund ei muutunud; dokumendid olid seda valesti lugenud või valesti ümardanud.
  • Õpetused, läbitöötatud torustiku näide ja käsk /kshana-run, auditeeritud selle väljalaske mootori vastu. Avaldatud arvude parandused, vana → uus: liike, mis kirjutavad <scenario>.table.csv, on kuus, mitte neli (puudusid leo-navmsg ja telecom-timing; docs/tutorials/README.md, commands/kshana-run.md); külma aatomi ½bT² ületus õpetuses 3 on 18 443 s, mitte 18 440 s; oem-interop edasi-tagasi viga failis docs/examples/multi-tool-pipeline.md on mõõdetud 4.88e-7 km, mitte „~1e-7 km“; õpetuse 2 CSAC holdover'i riba on 2000–3200 s, mida test väidab, mitte „~2600–4400 s“; õpetus 1 tsiteerib SP3 ridu ja geomeetriaplokki täpsusega, millega mootor need kirjutab. Mootori väljund ei muutunud.
  • Valideerimise, kvantmõõtmise, SGP4, animatsiooni, väidete ja terviklikkuse lehed. docs/VALIDATION.md: valge sagedusmüraga kella simuleeritud ühesekundilise Alani hälbe jõustatud lävi on 20 % (trükitud oli 25 %; lävi 25 % on see, mis on kõveral väärtustel 1, 10 ja 100 s); kiiruse juhusliku kõnni rida ütleb nüüd oma jõustatud 20 % lävendi välja jälgitud umbes 12 % kõrval; ja kiibiskaalas aatomkella kättesaadavus stsenaariumis orbit-gnss-challenged on umbes 0,73 (trükitud oli umbes 0,83). docs/QUANTUM.md: vibratsiooniga piiratud lasu kohta müra lehe läbitöötatud külma aatomi näites on umbes 46 korda selle lasumüra põhjast (oli „~45ד; ümber arvutatud 46,49) ning vahemik „1–50 µg/√Hz“ välitingimustes seadmete jaoks, mis oli vastuolus seadmega, mida leht ise tsiteerib, on asendatud kahe tsiteeritud seadme avaldatud arvudega. docs/SGP4-VALIDATION.md: halvim asendi erinevus on 4,12 mm (oli „≈ 4 mm“), satelliit nimetatud. docs/ANIMATION.md: videokodeerija näide luges 24 kaadrit sekundis kaadreid kiirusel 12; nüüd kasutab see väärtust 24, kiirust, mille kaadrimanifest ütleb. docs/CLAIMS-VS-REALITY.md: segamismudelil on 10 testi (oli 8) ja seotud filtri „2,97 m versus 48,8 m“ on asendatud sellega, mida selle test väidab (seotud asendiviga alla 0,6 korda lahtisidutud omast, võites vähemalt 90 katsest 100-st). docs/INTEGRITY.md: tempel „Today“ luges v0.22.0; nüüd nimetab see seda väljalaset ning kaks sellest ajast ehitatud võimekust (konstellatsiooni hõlmav rikkerežiim ja terviklikkuse tugisõnum) lahkuvad selle lünkade loendist.

Lisatud#

Spekter

  • Stsenaariumi liik spectrum: L-riba spektrimudel ja koskdiagramm (src/spectrum.rs, src/sigmf.rs, docs/SPECTRUM.md). Kogu GNSS-i L-riba ühe võimsusspektri tihedusena (PSD): GPS L1 jämekood ehk omandamiskood (C/A) ja L2 tsiviilsignaal (L2C) (BPSK(1)), Galileo E1 (multipleksitud binaarne nihkekandja, MBOC(6,1,1/11), või BOC(1 1)), GPS L5 ja Galileo E5a (BPSK(10)), kT mürapõhi koos vastuvõtja müranäitajaga ning pidevlaine- (CW), kitsaribalised, sirina- ja sobitatud mürasegajad skriptitud ajateljel. Iga segajat hinnatakse ribade kaupa selle spektraalse eraldatuse koefitsiendiga (SSC), mis annab segaja ja signaali suhte (J/S) ning efektiivse kandelaine ja müratiheduse suhte (C/N0) riba ja rea kohta. Diagramm on SVG koskdiagramm C/N0 ribadega; result.json kannab võrku võimsuses blokkide kaupa keskmistatult. Valikuline [iq] joonistab mudeli IQ-valimitena, kirjutab ja loeb Signal Metadata Formati (SigMF) salvestust (cf32_le, ci16_le) ning võrdleb Welchi hinnangut mudeliga; valikuline [recording] hindab päris SigMF-faili. Komplekti kuuluv näide scenarios/l-band-waterfall-jamming.toml: sirin võtab L1 C/A ja E1 10 s juures, CW toon L1 kandelainel hoiab C/A väärtusel 17,98 dB-Hz pärast sirina lõppu, samal ajal kui E1, mille spektris on seal null, taastub; L5 ja E5a jäävad puutumata.
    • Uus VALIDATED rida: signaalide PSD-d ja SSC-d, mida võrreldakse BPSK(n) peaasagariga 2n x 1,023 MHz, BOC(1 1) asagaridega keskpunktidega +/-1.023 MHz, Parsevali kinnisvalemitega avaldatud SSC-de -61.8 / -64.8 / -67.8 dB/Hz taga ning õpikuväärtustega Q = 1 (CW) ja 1,5 (sobitatud). BOC(1 1) PSD maksimum on kohas +/-0.759 MHz, mitte asaga keskpunktis; test kinnitab mõlemat.
    • Kaks uut MODELLED rida: koskdiagramm ja C/N0 ajatelg, mis taanduvad täpselt stsenaariumi jamming-id ahelale (kontrollitud igas aruandes), ning SigMF kodek ja Welchi hindaja. Hoidlas pole kolmanda osapoole salvestust.
    • navsignal: MBOC variant ja spectral_separation_coeff_offset.
    • Aruanne trükib C/N0, mille annaks stsenaariumi jamming-id esindav Q tabel, spektrist tuletatud väärtuse kõrvale; C/A kandelaine CW tooni puhul erinevad need 1,8 dB võrra. Kolm uut maatriksi rida: üks valideeritud (signaali spektrid ja spektraalse eraldatuse koefitsiendid) ja kaks modelleeritud.

Päikesesüsteem

  • Päikesesüsteemi efemeriid ja positsioneerimine mis tahes keha ümber. Kaks uut stsenaariumi liiki.
    • solar-system: Päike, kaheksa planeeti, Pluuto, Kuu, Phobos, Deimos, Io, Europa, Ganymedes, Callisto ja Titan ühel epohhil: heliotsentriline asend ja kiirus International Celestial Reference Frame'is (ICRF), gravitatsiooniparameeter, raadiused, J2 (teine tsooniline harmoonik), kus avaldatud, sideeriline pöörlemine, Rahvusvahelise Astronoomiaunioni (IAU) pooluse ja nullmeridiaan, orbiidi jälg ühe tiiru jooksul ning valguse läbimisaeg, ühesuunaline ja kahesuunaline vahemaa, Päikese Shapiro viivitus ja Päikese eraldusnurk vaatluskehast ning iga lisalingi jaoks. Planeedid pärinevad Jet Propulsion Laboratory (JPL) Kepleri elementidest, mille on koostanud Standish ja Williams (tabel 1, 1800 AD kuni 2050 AD; tabelid 2a/2b, 3000 BC kuni 3000 AD); kuud JPL keskmistest elementidest IAU sünkroonse pöörlemiskiirusega ning Titan IAU pöörlemismudelist. Näide: scenarios/solar-system-tour.toml.
    • body-pnt: orbiter või pinnalander mis tahes nende kehade ümber, mis navigeerib keha ümber oleva Walkeri konstellatsiooni pseudovahemaade ja Maalt tuleva kellavaba kahesuunalise vahemaaga; täpsuse halvenemise tegur, formaalne määramatus ja algväärtusega vähimruutude lahendid koos Maa-lingiga ja ilma selleta. Näited: scenarios/mars-orbit-pnt.toml, scenarios/europa-surface-pnt.toml.
    • Body saab juurde Merkuuri, Veenuse, Jupiteri, Saturni, Uraani, Neptuuni, Pluuto ja seitse kuud, nimeotsingu ja füüsikalise kirje; AnalyticSolarSystem annab mis tahes keha suhtes mis tahes teise olemasoleva EphemerisProvider liidese kaudu.
    • VALIDATED JPL Horizonsi vastu (Development Ephemeris DE441; fikstuurid ja päringud kataloogis tests/fixtures/solar_system/): Merkuurist Saturnini ja Maa tabelist 1 kahekordse öeldud nominaalvea piires (halvim 1,87 korda), kõik kaheksa planeeti tabelitest 2a/2b (halvim 1,71 korda) ning Maa ja Marsi ning Jupiteri valguse läbimisaeg. MODELLED: Uraan ja Neptuun tabelist 1, mis ületavad öeldud viga DE441 suhtes (2,0 ja 5,2 korda), Pluuto, kuud, keha konstandid ja body-pnt tulemused.
    • Leid: Montenbrucki ja Gilli Kuu jada failis src/ephem.rs on oma täppusliikme abil juba viidud J2000 ekvinoktsiumile (0,05 kraadi Horizonsist), nii et seda kasutatakse ilma täiendava täppuspöördeta. Kuus uut maatriksi rida: kaks valideeritud (planeedi asendid, valguse läbimisaeg) ja neli modelleeritud.

Konstellatsioonid mis tahes keha ümber

  • Konstellatsiooni kavandamine suures mastaabis (stsenaariumi constellation-design-id, src/constellation.rs). Walker delta ja Walker star mustrid (T/P/F), selged elementide loendid ja mitmekihilised kavandid, mitu konstellatsiooni jooksutuse kohta, Maa, Kuu, Marsi või mis tahes muu planeedi, Pluuto või suure kuu ümber keha konstantidest, mille lisas stsenaariumi solar-system-id. Eelseaded avaldatud nominaalelementidest: ülemaailmse positsioneerimissüsteemi (GPS) baasjoon ja laiendatav 24 pesaga konstellatsioon (Standard Positioning Service Performance Standard, SPS PS, 2020), Galileo Walker 24/3/1 (Open Service Service Definition Document väljaanne 1,1), BeiDou keskmise Maa orbiidi Walker 24/3/1 pluss geostatsionaarsed ja kaldunud geosünkroonsed satelliidid (Open Service Performance Standard 3,0) ja GLONASS 24/3/1 (Interface Control Document 5,1). Katvus ja täpsuse halvenemise tegur (DOP) laius- ja pikkuskraadi võrgu kohal: nähtavad satelliidid, GDOP, PDOP, HDOP ja VDOP (geomeetriline, asendi, horisontaalne, vertikaalne) ja kättesaadavus lahtri kohta, globaalselt ja halvimas kohas, ühe vastuvõtja kellaga konstellatsiooni kohta. Nähtavuse eelfilter (katvuse poolnurk pluss alamsatelliidi laiuskraadi riba, sfäärilisel kehal täpne) käitab 5 000 satelliiti 10 kraadi võrgul umbes 0,13 s silumisehituses.
    • VALIDATED: Walkeri generaator reprodutseerib Galileo OS SDD tabeli 23 ja GLONASS ICD pesa valemi; GPS eelseade reprodutseerib SPS PS ekvaatoriületuse veeru (35 kohta 36-st 0,0108 kraadi piires; E3F 0,06 kraadi piires, kuna tabeli enda rida on vastuoluline); GPS baasjoone globaalne HDOP jaotus ühtib SPS PS lisaga B (mediaan 0,940 versus 0,94, 95 % 1,255 versus 1,25, keskmine 0,965 versus 0,96; lävi 0,03).
    • MODELLED: suvalised kavandid, muud kehad, BeiDou faasi- ja kaldunud geosünkroonsed sõlmed, kahe keha orbiidid valikulise J2-ga, ainult geomeetria.
    • Stsenaariumid: constellation-multi-gnss-coverage (102 satelliiti, kättesaadavus 100 %, mediaan PDOP 0,95, 31,0 nähtaval üle 10 kraadi), leo-pnt-mega-shell (5 000 satelliiti, kättesaadavus 99,22 % PDOP-i 3 või väiksema korral üle 20 kraadi, 0 % polaarmütsidel, eelfilter säilitab 11,5 % paaritestidest), lunar-relay-constellation (14 satelliiti Kuu ümber, kättesaadavus 21,33 % kokku ja kõrgeim lõunapolaarpiirkonnas). Kõik kolm kuuluvad komplekti käsu kshana example jaoks. Märkmed: docs/CONSTELLATION-DESIGN.md. Kolm uut maatriksi rida: kaks valideeritud (Walkeri generaator ja GNSS-i eelseaded, GPS globaalne DOP) ja üks modelleeritud.
  • Spektrimudelist juhitud kampaania ja konstellatsioonid mis tahes keha ümber. scenarios/campaign-spectrum-holdover-integrity.toml seob stsenaariumi spectrum-id kella holdover'i ja terviklikkuse monitoriga (sirin võtab L1 C/A ja E1; CW toon hoiab seejärel C/A all, kuni E1 taastub ja vastuvõtja langeb tagasi ainult Galileo taevale), kinnitatud faili tests/campaign_composition_reference.rs eraldiseisva koskdiagrammi näite vastu. Stsenaariumi constellation-design-id lahendab nüüd oma keskkeha funktsiooni Body::by_name kaudu, nii et konstellatsiooni saab paigutada mis tahes planeedi, Pluuto või suure kuu ümber konstantidega, mida kasutab stsenaariumi solar-system-id.

Kampaaniad

  • Kampaaniad: paljud stsenaariumid koondatud ühte jooksutusse. Uus stsenaariumi campaign-id (src/campaign.rs, dokumenteeritud failis docs/CAMPAIGNS.md) käitab olemasolevate liikide liikmeid sama käsurealiidese jaotuse kaudu ja loeb arvud nende tulemustest tagasi. Neli jaotist, mis tahes kombinatsioonis:
    • [[phases]]: aheldatud missioon ühel ajateljel. Liigipõhised eelseaded loevad kella ajaviga selle valve vastu, keskmist efektiivset kandelaine ja müratiheduse suhet (C/N0) jälgimispõhja vastu, vertikaalset kaitsetaset häirepiiri vastu, asendiviga, jälgitavaid satelliite ja alarmilippe, hoituna ühisele võrgule koos faasipiiride ja sündmustega. Olek antakse edasi võtmetega carry, handoff ja end_at.
    • [sweep]: üks kuni kolm punktiga võtit mis tahes liigist, valikuliselt iga sõlme algväärtusega ansambliga.
    • [monte_carlo]: realisatsioon k algväärtusel baas + k, keskmise, hajuvuse, protsentiilide ja fikseeritud algväärtusega bootstrapi 95% usaldusvahemikuga.
    • [compose]: ühised väärtused, mis on seotud mitme liikmega, koos kombineeritud parima ja halvima kokkuvõttega. Iga tulemus kannab kampaania räsi ja kokkuvõtet iga liikme tulemuse kohta. Neli komplekti kuuluvat stsenaariumi: campaign-jam-spoof-holdover-integrity (nominaalne, segamine, spuufimine, mis lõpeb kellamonitori 370 s tuvastamisel, holdover, mis kannab 37,0 ns spuufitud nihet inertsiaalseadme rannikusõidul, terviklikkuse alarm, taastumine), campaign-sweep-jammer-power, campaign-shared-jammer-sea-road ja campaign-monte-carlo-clock-holdover. tests/campaign_composition_reference.rs kinnitab koostise samasusi: ühefaasiline kampaania reprodutseerib eraldiseisva jooksutuse bitt-bitilt kolmel liigil, fikseeritud algväärtusega ansambel on baidistabiilne ja valge sagedusmüraga kella puhul jääb ansambli keskmine teatatud vahemikku ning hajuvus hii-ruut vahemikku sqrt(q_wf * tau) = 16,459 ns kohta. Kolm uut modelleeritud maatriksi rida.

Animatsioon

  • Animatsiooni eksport (--animate svg|html|frames|all, src/animation.rs, docs/ANIMATION.md). Mis tahes jooksutuse, mille tulemus kannab ajarida, saab nüüd kirjutada animeeritud Scalable Vector Graphics (SVG) failina (Cascading Style Sheets võtmekaadrid, skripti pole: jooned joonistuvad sisse liikuva ajakursori taha), ühe isemajandava HyperText Markup Language (HTML) esitajana (esita ja peata, kerimine, kiirus, kõik paneelid ühel sünkroonitud kursoril, sündmusemärgid, mis klõpsuga otsivad; väliseid varasid pole) või nummerdatud SVG kaadrijadana koos failiga manifest.json, mis ütleb videokodeerijale kaadrid sekundis, kestuse ja kaadriajad. Kampaania esitatakse oma faasidena koos märgitud alarmidega; spektrijooksutus animeerib oma koskdiagrammi rea haaval. Esitaja järgib seadet prefers-color-scheme ning seadme prefers-reduced-motion korral näitavad nii SVG kui esitaja liikumise asemel valmis pilti. Seaded --animate-fps ja --animate-duration määravad esituse; kshana::api::animate_toml ja kshana::animation::animate_result on teegi sisenemispunktid ning result.json saab ploki animation ainult siis, kui --animate töötab. Väljund on tulemuse ja valikute puhas funktsioon, kordusjooksutusel baidi-baidilt identne, ajatempliga pole. Liik, millel pole diskreetset ajatelge, lükatakse tagasi teatega „no time series to animate“ ja midagi ei kirjutata. Eksportija joonistab jooksutuse enda valimid ega lisa ühtki arvu, nii et see on MODELLED (sisemine kooskõla) ega kanna kontrollimaatriksi rida; ükski avaldatud arv ei muutu. Testid: tests/animation.rs (determinism, kaadrite arv, väline aadress puudub, korrektne XML, vähendatud liikumise tee ja iga komplekti kuuluv ajareaga stsenaarium animeerub).

Aruanded

  • Täpsemad jooksutuse aruanded (src/advanced_report.rs, docs/REPORTS.md). Iga käsurealiidese (CLI) jooksutus kirjutab nüüd faili <scenario>.report.html, prinditava HyperText Markup Language (HTML) aruande, ja faili <scenario>.report.json, sama sisu masinloetava JavaScript Object Notation (JSON) dokumendina. Jaotised: juhtkokkuvõte; iga stsenaariumi sisend koos ühikuga, loetud väljaühikute skeemist (tulemuse plokk units), muidu välja nime järelliitest, muidu märgitud mitteöeldud; tulemused jooksutuse diagrammiga, iga skalaar ja iga arvulise veeru kokkuvõte; kampaania puhul pühkimissõlmede tabel, Monte Carlo keskmine, standardhälve, 5. / 50. / 95. protsentiil ja bootstrapi usaldusvahemik koos histogrammiga iga mõõdiku kohta, ahela faaside tabel või koostise liikmed ja kombineeritud kokkuvõte (ning jooksutuse sweep või sweep-nd võrk); sündmuste ajatelg; iga kontrollimaatriksi rea, mida jooksutuse liigid kasutavad, silt VALIDATED / MODELLED / PARTNER, sõltumatu etalon ja testitõend, loetud maatriksist liigi ja rea ristviite kaudu (rida, mis hindab ühte sisendteed, näiteks stsenaariumi orbit Simplified General Perturbations 4 (SGP4) teed või stsenaariumi slot-timing mõõdetud kirje teed, loetletakse ainult siis, kui jooksutus seda teed kasutas, ja Shuttle Radar Topography Mission (SRTM) lugeja rida ei loetleta ühegi liigi jaoks, sest ükski stsenaariumi väli ei loe SRTM-i paani); mittemodelleeritud väited ja eeldused, igaüks oma allikaga tsiteeritud; ning reprodutseeritavuse kirje (mootori versioon, lähtekoodi commit, kui ehitus seab muutuja KSHANA_GIT_COMMIT, stsenaariumifaili ja tulemusdokumendi Secure Hash Algorithm 256-bit (SHA-256) räsid, algväärtus, platvorm ja täpne käsk). Aruanne ei loe kella: sama stsenaarium, algväärtus ja mootoriehitus annavad baidi-baidilt identse aruande ning ainus ajatempel, mida see võib näidata, on see, mille --study-name juba kirjutab. Prindistiil mahub A4 ja US Letteri formaati, kordab tabelipäiseid ning hoiab read ja joonised lehtede vahel tervena; Portable Document Format (PDF) fail tehakse brauseri funktsiooniga „Save as PDF“. Valikut --report pdf pole, sest diagrammide renderdamine PDF-i vajaks uut rasket sõltuvust. Testid: tests/advanced_report.rs annab aruande iga komplekti kuuluva stsenaariumi kohta (tühje jaotisi pole, kohatäiteteksti pole, sildid võrduvad maatriksiga, stsenaariumi räsi võrdub faili omaga, kordusjooksutusel baidi-baidilt identne) ja tests/advanced_report_cli.rs jooksutab salvestatud käsu uues kataloogis uuesti ning nõuab baidi-baidilt identset faili result.json. Ükski avaldatud arv ei muutu ning liikide, stsenaariumifailide ja maatriksi ridade arv on muutumatu.
  • Aruanne, animatsioon ja eksportid töötavad koos. Täpsem aruanne saab jaotise „Animation and exports“: jooksutuse animeeritud joonis, manustatud inertse pildina (või põhjus, miks seda pole), lingid selle kõrvale kirjutatud animatsiooni- ja eksportfailidele ning iga koostalitlusformaat koos sellega, kas see kehtib, miks mitte, ja selle spetsifikatsiooniga; report.json kannab sama plokki companions. HTML animatsiooniesitaja loetleb selle kõrvale kirjutatud eksportfailid. Käsurealiides (CLI) renderdab nüüd eksportid enne aruande kirjutamist, nii et mõlemad saavad failid nimetada.

Koostalituse eksportid

  • Koostalituse eksportid ja impordid (--export, src/interop/, docs/INTEROP.md). kshana <scenario.toml> --export <format> kirjutab stsenaariumi geomeetria kujul CZML (Cesium Language), KML (Keyhole Markup Language 2,2, Open Geospatial Consortiumi standard, aegmärgitud radadega gx:Track), GeoJSON (Internet Engineering Task Force Request for Comments 7946) ja Ansys STK (Systems Tool Kit) efemeriidid .e (EphemerisTimePosVel, meetrid, üks fail iga liikuva objekti kohta) ning stsenaariumi spectrum-id sünteesitud IQ (samafaasiline ja kvadratuurne) hetktõmmise SigMF (Signal Metadata Format) paarina olemasoleva src/sigmf.rs kaudu. --export all kirjutab iga kehtiva formaadi ja trükib, miks teised ei kehti; --export list annab aru jooksutamata. Liikuvad objektid kirjutatakse Geocentric Celestial Reference Systemis (CZML INERTIAL, STK ICRF) ning Maaga seotud WGS 84 (World Geodetic System 1984) pikkuskraadi, laiuskraadi ja kõrgusena (KML, GeoJSON); fikseeritud kohad CZML-is on FIXED. Stsenaariumi jamming-id lisab kaks segaja jalajälge oma lingivõrranditest. --import-route <file.geojson> kirjutab GeoJSON LineString failide terrain-nav, terrain-slam, gravity-map ja combined-altpnt raja sisenditesse. Eksportid on baidideterministlikud ega kanna ajatemplit. tests/interop_formats.rs valideerib iga ekspordi selle avaldatud spetsifikatsiooni vastu, võrdleb eksporditud satelliidi olekuid mootori omadega 1 mm täpsusega ja jooksutab iga komplekti kuuluva stsenaariumi läbi iga formaadi, millest igaüks kas eksporditakse või ütleb, miks mitte (tabel failis docs/INTEROP.md). Ükski avaldatud arv ei muutu: stsenaariumi spectrum-id IQ süntees viidi üheks jagatud funktsiooniks ja selle tulemusdokument on baidi-baidilt identne ning PassesScenario saab juurde propagator() ja epoch_calendar(), mida kasutab selle enda jooksutus. Liikide, stsenaariumifailide ja kontrollimaatriksi ridade arv on muutumatu. Orbiidi- või terviklikkusstsenaarium ilma epoch dateeritakse selle satelliitide enda andmete järgi: t = 0 on varaseim TLE (kaherealine elementide komplekt), edastatud efemeriidi või SP3 (Standard Product 3) epohh ning iga selline satelliit pööratakse GCRS-i ja Maaga seotud tugisüsteemidesse oma hetkel; 2000-01-01T00:00:00Z kasutatakse ainult siis, kui ükski satelliit epohhi ei kanna. SP3 ja OEM (Orbit Ephemeris Message) eksportid hoiavad oma sildi 2000-01-01. Selle toetamiseks lisati Sgp4::epoch_jd_utc, Sp3Interpolator::jd_ut1 ja Propagator::own_jd_utc; midagi olemasolevat neid ei loe.

Madala Maa orbiidi navigatsioon: signaal

  • LEO-PNT signaalikavandid ja mitmeribaline spekter. Uus stsenaariumi leo-signal-id ja stsenaariumi spectrum-id, mis ulatub L-ribast kaugemale: üks liik, neli stsenaariumifaili (kolm komplektis; Celeste IOD fail on ainult hoidlas) ja neli maatriksi rida (kaks VALIDATED, kaks MODELLED).
    • leo-signal: parameetritega madala Maa orbiidi (LEO) positsioneerimise, navigatsiooni ja aja (PNT) signaalikavandid mis tahes süsteemile (riba, saatja ribalaius, ITU jaotus; omandamis-, andme- ja piloodikomponendid BPSK(n), BOC(m,n), MBOC või lamedate spektritega, võimsusosad, FDMA alamkandjad, koodipikkused ja andmekiirused) kompileeritud avalikest eelseadete failidest kataloogis data/leo-signals/ (Xona Pulsar X1/X5, Iridium STL, Starlinki oportunistlik signaal, CentiSpace, esindav C-riba kavand ja esindavad UHF/L/S/C/lai-C kavandid, igaüks oma allika URL-iga) või kirjutatud otse. Signaali kohta: ribapiiratud PSD ja ribasisesed võimsusosad, Gabori ribalaius, ribapiiratud varajase-hilise koodijälgimise värin C/N0 ja vahe suhtes (Betz & Kolodziejski 2009) ning ulatuse täpsus, omandamise otsinguruum, avastamistõenäosus ning keskmine järjestikune ja koodiparalleelne omandamisaeg, SSC GPS L1 C/A, Galileo E1, GPS L5, Galileo E5a, E5b ja AltBOC-sse ja neist koos C/N0 kaoga, CW, lairiba ja sobitatud J/S tolerants spektrikoodi stsenaariumi liigi SSC-koodist, ribade kompromiss (ionosfääriviivitus, vabaruumi sumbumine, ulatus võrdsel C/N0 ja võrdsel EIRP-l, segaja tolerants) ning valikulised kujukontrollid kirjeldatud mõõtmise vastu. Näited: scenarios/leo-band-trade.toml, scenarios/xona-pulsar-signals.toml, scenarios/celeste-iod-classical-pilot-signals.toml (Celeste IOD ribad ja signaali seadistus, mis esitati ESA NAVISP LEO-PNT töötoas, 2026; tagasi hoitud koos Celeste IOD eelseadega, vt „LEO-PNT otsast lõpuni“ allpool). Märkmed failis docs/LEO-SIGNAL.md.
    • spectrum: ribad võivad nüüd olla eelseatud signaalikavand (iga komponent joonistatud, ribapiiratud, C/N0 ja J/S viidud jälgitavale komponendile) või kohandatud kandja ja modulatsioon; [[panels]] lisavad koskdiagramme muudele sagedusvahemikele ühel ajateljel; wideband (barrage) segaja liitub nelja lainekujuga. Aruanne lisab bands[].tracked_power_dbw, bands[].design ja panels ning ühe kirje not_modelled. Lihtribad annavad samad arvud kui varem. Näide: scenarios/multi-band-jamming-waterfall.toml.
    • navsignal saab juurde siinusintegraali, BPSK võimsuse ribas ja ribapiiratud Gabori ribalaiuse kinnisvalemid, ribapiiratud varajase-hilise värina mis tahes spektri jaoks ja selle Gabori piiri, nihutatud BPSK SSC kinnisvalemi, Galileo E5 AltBOC(15 10) spektri ja modulatsioonisildi parseri; Modulation::label trükib BPSK(1/3) murruna.
    • Neli maatriksi rida: VALIDATED ribapiiratud kinnisvalemid (90,3 % BPSK võimsusest peaasagaris, värin, mis taandub Kaplani ja Hegarty koherentsele kujule, 0,0039564 kiipi juures 45 dB-Hz, B_L 1 Hz, d 1 kiip, T 20 ms, ja selle Gabori piirile, ning BPSK enda SSC 2/(3 R_c); Gabori kinnisvalem ja nihutatud SSC selle Parsevali kuju vastu on öeldud sisemiste ristkontrollidena); VALIDATED LEO Doppleri maksimum (Xona X1 33,2 kHz avaldatud 32 kuni 34 kHz piires, Iridium 0,5 kHz piires väärtusest 36 kHz); MODELLED leo-signal; MODELLED mitmeribaline spekter.
  • LEO-PNT läbimine ja ribakohane lingieelarve: stsenaariumi leo-pass-id. LEO-PNT on positsioneerimine, navigatsioon ja aeg madala Maa orbiidi (LEO) satelliitidelt. Kasutaja (maapealne, mere-, õhu- või siseruumides, paigal või liikuv) ja üks või mitu LEO satelliiti kavandatud läbimisest, selgetest elementidest, kaherealisest elementide komplektist (TLE) SGP4 kaudu või Walkeri konstellatsioonist koodi constellation-design abil. Satelliidi, riba ja epohhi kohta: vaatenurgad, vahemaa, kinnisvalemiga vahemaa muutumiskiirus ja kiirendus (kontrollitud igal jooksutusel kesksete vahedega), Doppler ja Doppleri kiirus, vabaruumi sumbumine, EIRP (ekvivalentne isotroopselt kiiratud võimsus) isovoo-, Gaussi kiire või lameda satelliidimustriga, plaaster-kasutajaantenn, ITU-R P.676 gaasiline sumbumine, ITU-R P.838/P.618 vihmasumbumine, P.618 troposfääri skintillatsioon, ITU-R P.2109 hoonesse sisenemise kadu siseruumi kasutaja jaoks, polarisatsiooni mittevastavus, süsteemi müratemperatuur ja C/N0 (kandelaine ja müratiheduse suhe); esimese järgu ionosfääriviivitus riba kohta Klobucharist või vertikaalsest TEC-ist (elektronide koguhulk), kaldus TEC satelliidi all, ning ionosfäärivabad ribapaarid koos nende müra võimendusega. Galileo või GPS satelliite hinnatakse sama vastuvõtjaga nende liidesedokumentide vastuvõetud võimsustest, nii et kellukakujuline LEO läbimine ja lame MEO (keskmine Maa orbiit) kandelained jagavad ühte graafikut. Jaotis [iot] annab esimese asendilahenduse aja, energia asendilahenduse kohta ja aku eluea töötsükli suhtes (MODELLED).
    • Süsteemist sõltumatu: mootor ei vaja eelseadet. Valikulised eelseaded, igaüks omas failis ja märgitud PUBLIC (URL-iga), REPRESENTATIVE või WORKSHOP: üldine mitmeribaline (UHF, L, S, C), üldine C-riba, Xona Pulsar X1/X5 (arXiv 2509,19551), Iridium STL, Starlink ainult Doppleri oportunistliku signaalina, CentiSpace ja Celeste IOD (orbiidil demonstratsioon), mille signaaliparameetrid esitati ESA NAVISP LEO-PNT töötoas, 2026, ja asuvad failis src/celeste_iod.rs, nii et neid saab tagasi hoida (vt „LEO-PNT otsast lõpuni“ allpool).
    • Avalikud ehituskivid kataloogis src/leo_link/ (geometry, antenna, itu, iono, energy, presets), mida teised moodulid saavad kutsuda.
    • Stsenaariumid: leo-pass-vs-gnss-cn0, leo-indoor-uhf, leo-iot-energy, leo-pass-xona-pulsar, leo-pass-iridium, leo-pass-celeste-iod-multiband.
    • Üheksa maatriksi rida. VALIDATED (6): ITU-R P.838-3 koefitsiendid selle tabeli 5 vastu; P.618-14 vihmasumbumine ja skintillatsioon ITU-R uurimisrühma 3 valideerimisnäidete vastu; P.2109 hoonesse sisenemise kadu uurimisrühma 3 töövihiku vastu; esimese järgu ionosfääri skaleerimine IS-GPS-200 rühmaviivituse suhte vastu koos vabaruumi sumbumisega; ringorbiidi paigalseisva kasutaja Doppleri maksimum arXiv 2509,19551 tabeli 1 vastu. MODELLED (3): läbimine ja lingieelarve, eelseaded ning väikese energiakuluga asendilahenduse eelarve. Üks liik ja kuus stsenaariumifaili. Märkmed failis docs/LEO-PASS.md.

Madala Maa orbiidi navigatsioon: navigatsioonisõnum

  • LEO navigatsioonisõnum (stsenaariumi leo-navmsg-id, src/leo_navmsg/). Madala Maa orbiidi (LEO) positsioneerimise, navigatsiooni ja aja (PNT) satelliidi edastatav efemeriidi ja kella sõnum mis tahes orbiidi, kandja ja mudeli jaoks; nimetatud eelseaded on valikulised andmed ja iga võimekus töötab ilma nendeta. Üks liik, viis stsenaariumifaili ja üheksa maatriksi rida (kolm VALIDATED, kuus MODELLED). Vt docs/LEO-NAVMSG.md.
    • Sõnumi sisu: SVID, andmete väljaanne, riba ja signaali tervis; nädal, nädala aeg ja teist järku kellapolünoom; efemeriid ühes nelja mudeli seast: Galileo OS SIS ICD 16-parameetriline Kepleri komplekt, see komplekt pluss mööda rada, risti rada ja radiaalsed parandupolünoomid, Liu jt 2025 22-parameetriline mudel (doi 10.3390/rs17162894) või ATOMIC nullkella ECEF-polünoom; ning Klobuchari komplekt, NeQuick-G koefitsiendid efektiivse ionisatsioonitasemega ja süsteemiaja ja UTC vaheline parameetrid ICD liigsekundi juhtudega.
    • Sobitaja: tõeline orbiit, mis on integreeritud tsooniliste J2–J6 või EGM2008 gravitatsiooni ja takistusega, algväärtusega vaba või juhitud kell, Levenbergi–Marquardti sobitus mittesingulaarsetel elementidel, seejärel lineaarsed vähimruutude parandupolünoomid ja kell, mis on sobitatud kasutaja relativistliku liikme netona.
    • Neli analüüsi ja stsenaariumi: leo-navmsg-fit-interval-trade (kosmosesignaali vahemaavea (SISRE) sõltuvus sobitusvahemikust ja uuendusperioodist), leo-navmsg-model-comparison (neli mudelit, bitid ja Kshana 22-parameetriline sobitus Liu jt kõrgustel avaldatud arvude kõrval, MODELLED), leo-navmsg-midpass-update (pidevus igal sõnumivahetusel läbimise ajal) ja leo-navmsg-encode-decode (Kshana enda dokumenteeritud binaarkaader CRC-24Q ja kvantimiseelarvega, RINEX-4-stiilis plokk, mis on märgitud Kshana laiendiks, ja CSV tabel).
    • VALIDATED: globaalse keskmise SISRE kaalud Montenbrucki jt 2018 avaldatud keskmise orbiidi ja geostatsionaarse tabeli vastu; Galileo kasutajaalgoritm RTKLIB-i vastu neljal päris Galileo edastatud efemeriidil (tests/leo_navmsg_reference.rs); CRC-24Q kataloogi kontrollväärtuse ja RTCM 10403 1005 näitekaadri vastu.
    • Eelseaded, igaüks omas failis allikatega: Xona Pulsar ja Pulsar-0, Iridium, Starlink, CentiSpace, esindav C-riba süsteem, ATOMIC ja Celeste IOD (ainus eelseade, mis kasutab ESA NAVISP LEO-PNT töötoas 2026 esitatud materjali, hoitud failis src/celeste_iod.rs koos oma stsenaariumidega, nii et seda saab tagasi hoida).

Madala Maa orbiidi navigatsioon: liitmine

  • Liidetud MEO + LEO positsioneerimine, navigatsioon ja aeg: leo-pvt, leo-ppp ja ntn-positioning. Kolm uut stsenaariumi liiki kataloogis src/leo_fusion/, süsteemist sõltumatud: iga konstellatsioon on Walkeri kihid, elementide komplektid või GNSS-i eelseade, iga signaal kandja, kiibikiirus ja kandelaine ja müratiheduse (C/N0) ümbris, iga veaeelarve selge ühe sigma ning nimetatud madala Maa orbiidi (LEO) süsteemid on valikulised eelseaded, igaüks omas failis oma allikatega, mis on märgitud avalikuks, töötoa- või tuletatuks (Xona Pulsar X1/X5, Iridium Satellite Time and Location (STL), Starlinki oportunistlikud signaalid, CentiSpace, esindav C-riba süsteem, ATOMIC nullkella efemeriidimudel ja üks ESA Celeste orbiidil demonstratsiooni eelseade, mille töötoast tuletatud parameetrid asuvad failis src/celeste_iod.rs, nii et neid saab tagasi hoida).
    • leo-pvt on neli režiimi: Doppleri positsioneerimine (vahemaa muutumiskiiruse partii vähimruudud kellahälbe ja kiiruse olekutega, ainult Doppleri oportunistlike signaalide režiim, ühe läbimise rajasuunaline ja raja-ristisuunaline täpsus ning Doppleri, Doppleri kiiruse ja hoo ümbris); ühine GNSS + LEO kaalutud vähimruudud ühe kellaga süsteemi kohta (süsteemidevaheline nihe) või teadaoleva nihkega, mõõtmispõhised sigmad sisenditena ja DOP LEO satelliitide arvu suhtes; polaar- ja Arktika katvus laiuskraadi suhtes; ning LEO aja edastamine ülemaailmse koordineeritud ajani (UTC) C/N0 ja vastuvõtja ostsillaatori suhtes IS-GPS-200 süsteemiaja ja UTC avaldisega.
    • leo-ppp: ujuv täppispunktpositsioneerimise (PPP) laiendatud Kalmani filter ionosfäärivabal koodil ja faasil, ainult GNSS ja LEO täiendusega, selle koondumisajaga ning Monte Carlo NEES (normaliseeritud hindamisvea ruut) kooskõlatestiga. Komplekti kuuluv stsenaarium annab 7,4 min nelja MEO süsteemiga ja 4,8, 3,2, 2,7 ning 2,3 min vastavalt 60, 96, 192 ja 288 LEO satelliidiga, Li jt 9,6, 7,0, 3,2, 2,1 ja 1,3 min kõrval (J. Geod. 93:749, 2019) suundumuse MODELLED võrdlusena.
    • ntn-positioning: 5G mittemaapealse võrgu (NTN) positsioneerimine 3GPP n256 mobiilsatelliidi S-ribas Cramér-Rao piirist saabumisaja ja Doppleri kohta.
    • Stsenaariumid: leo-doppler-positioning, starlink-sop-doppler-positioning, meo-leo-fused-pvt, leo-ppp-convergence, ntn-5g-positioning, polar-arctic-leo-coverage, leo-timing-utc (komplektis) ja celeste-iod-fused-pvt (ainult hoidlas, tagasi hoitud koos Celeste IOD eelseadega).
    • Kaheksa maatriksi rida: LEO Doppleri ümbris VALIDATED avaldatud Iridiumi (±36 kHz: 35,9 kHz, 5% piires) ja Xona Pulsar X1 (32 kuni 34 kHz: 33,6 kHz 97 kraadi kihist, laienemiseta) arvude vastu (tests/leo_doppler_reference.rs); Doppleri positsioneerimine, ühine pseudovahemaa positsioneerimine, PPP koondumine, NTN piirid, LEO aeg, polaarkatvus ja eelseaded MODELLED. Kolm liiki ja kaheksa stsenaariumifaili. Dokumentatsioon: docs/LEO-PNT-FUSION.md.
  • LEO-PNT otsast lõpuni: stsenaariumi leo-pnt-chain-id ja kokku ühendatud LEO etapid. Üks madala Maa orbiidi (LEO) positsioneerimise, navigatsiooni ja aja (PNT) süsteem, jälgituna selle signaalikavandist kasutaja asendini, iga etapp mootori enda liik oma stsenaariumitabelil, väärtused edastatakse koodis (docs/LEO-PNT.md):
    • leo-pass ribad võivad nimetada kavandi leo-signal (signal = "xona-x5"): riba võtab kavandi keskpunkti, saatja ribalaiuse ja jälgitava komponendi kiibikiiruse, jagab oma EIRP (ekvivalentne isotroopselt kiiratud võimsus) kavandi komponentide vahel ning annab iga epohhi jälgitava komponendi C/N0 (kandelaine ja müratiheduse suhe) ja ribapiiratud koodijälgimise värina (ulatusviga; paari iono_free müra kasutab seda samuti). Kavandita riba annab sama väljundi nagu varem.
    • leo-pnt-chain käitab signaal -> läbimine -> navigatsioonisõnum -> liidetud leo-pvt ühine asendilahendus -> valikuline leo-ppp. Iga positsioneerimisetapi LEO süsteem, mis jätab need seadmata, võtab läbimisele sobitatud C/N0 joone sin(kõrgus) kaudu, sõnumi kosmosesignaali vahemaavea (SISRE: selle esitusviga läbimise satelliidi orbiidil koos öeldud orbiidi määramise liikmega od_sisre_m ruutude summa juurena) ning kavandi kandja ja kiibikiiruse; täppispunktpositsioneerimise (PPP) juhud võtavad SISRE. Iga üleandmine on loetletud oma väärtuse ja ühikuga ning tests/leo_pnt_chain.rs kontrollib, et kumbki võrdub ülesvoolu väljundiga ja et ülesvoolu muutused liigutavad allavoolu arve. LeoNavmsgScenario::broadcast_sisre on uus sõnumi sisenemispunkt.
    • Stsenaariumid: leo-pnt-end-to-end (üldine 1080 km konstellatsioon ja esindav signaal generic-l), xona-pulsar-end-to-end (avalik X5 signaal), mõlemad komplektis, ja valikuline, ainult hoidlas olev celeste-iod-end-to-end.
    • Läbimise, sõnumi ja liidetud positsioneerimise valdkondade Celeste IOD (orbiidil demonstratsioon) eelseaded asuvad nüüd ühes failis src/celeste_iod.rs, mille build.rs kompileerib sisse ainult siis, kui see olemas on (konfiguratsiooni lipp kshana_celeste). Selle viis stsenaariumi (scenarios/*celeste-iod*.toml) on ainult hoidlas, nii et selle faili ja nende stsenaariumide kustutamine hoiab tagasi iga arvu, mis esitati ESA NAVISP LEO-PNT töötoas 2026, ilma lähtekoodi muutmata; tests/workshop_preset_isolation.rs kontrollib, millised failid võivad eelseadet nimetada või selle ribaplaani arve kanda.
    • Iga LEO liik täpsema aruande ristviites, mille teespetsiifilised read on loetletud ainult siis, kui jooksutus seda teed kasutas (vihmakiirus, hoone, analüüs või režiim, mis jooksis). leo-pvt Doppleri aknad saavad t_s ja leo-ppp juhud saavad t_min, nii et mõlemad animeeruvad; leo-pass ja leo-pnt-chain ekspordivad CZML-i, KML-i, GeoJSON-i ja STK efemeriide ning teised LEO liigid ütlevad, miks formaat ei kehti.

Madala Maa orbiidi navigatsioon: vastupidavus, fookusvaldkonnad ja lõppkasutaja stsenaariumid

  • LEO-PNT vastupidavus, üks stsenaarium katsefookuse valdkonna kohta ja üks lõppkasutaja vertikaali kohta ning docs/LEO-PNT.md kogu LEO liikide ja stsenaariumide ülevaatena. Iga stsenaarium töötab ilma Celeste andmeteta ja kuulub komplekti.
    • leo-pass saab jaotise [spoofer]: spuufer võltsib vahemaa ja vahemaa muutumiskiiruse osas isekooskõlaliselt väidetud asendi signaale, mis hüppab ja/või lükatakse tõelisest pärast algust (LEO riba kohta ja MEO GNSS signaal), ionosfääriga või ilma. Kaks monitori töötavad öeldud valehäire tõenäosusel: Doppleri ja läbimise geomeetria kooskõla (mõõdetud vahemaa muutumiskiirused võrreldes nendega, mis on ennustatud orbiitidest ja sõltumatust eelnevast asendist ja kiirusest; üldistatud vähimruutude hii-ruut aknas GNSS, LEO ja kõigil kanalitel, faasilukustussilmuse müra C/N0-st) ja ribadevaheline kooskõla (iga LEO ribapaari mudelikorrigeeritud geomeetriavaba kombinatsiooni samm). Tulemus annab statistikud epohhi kohta (nii et see animeerub), iga paari ja selle, millal iga monitor tuvastab. Ehituskivid failis leo_link::spoof. Jaotise puudumisel on väljund muutumatu.
    • Iga leo-pass ribapaar annab ka kaldu elektronide koguhulga (TEC), mille selle geomeetriavaba kombinatsioon läbimise tipus taastab, ja selle hinnangu koodimüra sigma (ionosfääri sondeerimine). See lisab kaks välja iga mitmeribalise leo-pass tulemusele; ükski olemasolev arv ei muutu.
    • leo-pvt ajarežiim võtab trace = true: iga rida annab siis oma ajavea ja ennustatud sigma igal epohhil samade tõmmetega, nii et rea statistikud on muutumatud ning jooksutus animeerub ja aheldub kampaanias.
    • Kampaania ekspordib nüüd iga liikmestsenaariumi, millel on geomeetria (faasijooksutused, pühkimise ja Monte Carlo baasstsenaariumid, koostatud liikmed oma seotud ühiste väärtustega), omaette failikomplektina, liikme silt failinimes; varem kampaania midagi ei eksportinud. Koostalituse tabel failis docs/INTEROP.md muutub vastavalt.
    • Kampaania pühkimisvõti võib indekseerida tabelite massiivi asukoha järgi (system.2.sisre_m).
    • Vastupidavuse stsenaariumid: leo-resilience-multiband-diversity (50 MHz L5-riba pealetung, pühitud võimsuses: iga L-riba signaal kukub, UHF, S- ja C-riba LEO signaalid säilitavad oma C/N0), leo-resilience-js-margin (J/S varu vastuvõetud võimsusest: GPS L5, Galileo E5a ja Xona X5 kaotatud tasemel -105, -100 ja -95 dBW, -135 dBW üldine LEO signaal jälgib endiselt tasemel -90 dBW), leo-resilience-spoof-doppler (30 m hüpe, mille ainult GNSS Doppleri test jätab märkamata ja kõigi kanalite test tuvastab 105 s pärast algust), leo-resilience-spoof-monitors (neli spuufrit mõlema monitori vastu) ja leo-resilience-gnss-jammed-leo-carries (GNSS segatud, S- ja C-riba LEO kiht jälgitud, vastuvõtja autonoomne terviklikkuse seire ainult LEO kihil annab alarmi 2 epohhil 30-st).
    • Fookusvaldkonna stsenaariumid: leo-focus-ppp-altitude, leo-focus-ntn-bandwidth, leo-focus-iot-eirp, leo-focus-science-iono-sounding, leo-focus-data-services, leo-focus-indoor-uhf, leo-focus-fused-pnt-sisre (vastupidavus L-, S- ja C-ribas on leo-resilience-multiband-diversity).
    • Vertikaalide kampaaniad, igaüks animeeritud ja oma LEO läbimisi eksportiv: leo-vertical-autonomous-vehicle, leo-vertical-rail-maritime (komplekti kuuluvad mere- ja raudteestsenaariumid pluss LEO), leo-vertical-critical-infrastructure-timing, leo-vertical-polar-arctic, leo-vertical-5g-network-timing, leo-vertical-asset-tracking-iot. Ühe rea tulemused failis docs/LEO-PNT.md.
    • Kolm MODELLED maatriksi rida: Doppleri ja läbimise geomeetria spuufimismonitor, ribadevaheline spuufimismonitor ja ionosfääri sondeerimine. tests/leo_resilience_verticals.rs kontrollib monitore (vaikivad enne algust, Doppleri statistik ruutfunktsioon hüppes, maapealse spuufri ionosfääri samm ja ionosfääri teadliku spuufri puhul selle puudumine), sondeerimise samasust, ajarida rea statistikute vastu ja seda, et kampaania eksport võrdub iga liikme enda omaga.
    • Stsenaariumi leo-pass-id leht liigub faili docs/LEO-PASS.md; docs/LEO-PNT.md on ülevaade.

Mere-, maantee- ja raudteestsenaariumid

  • Mere-, maantee- ja raudteestsenaariumid. Viis komplekti kuuluvat näidet olemasolevatel liikidel, nii et laevadel, maanteesõidukitel ja rongidel on igaühel läbitöötatud juhtum. Iga arv on MODELLED; ühtki pole valideeritud mõõdetud andmete vastu.
    • scenarios/maritime-strait-jamming.toml (jamming): 50 W laiaribaline segaja 30 m mastil, 30 km kaugusel avaveel laevast. Keskmine segaja ja signaali suhe (J/S) umbes 48 dB ning kättesaadavus langeb väärtuselt 1,00 väärtusele 0,00.
    • scenarios/maritime-port-approach-coast.toml (ins-trn-coast): navigatsioonitaseme inertsiaalnavigatsioonisüsteem (INS) kiirusel 12 sõlme, GNSS kadunud ja ilma toetuseta. See ületab 10 m 281 s järel ja 100 m 833 s järel, Rahvusvahelise Mereorganisatsiooni (IMO) resolutsiooni A.1046(27) sadamasselähenemise ja ookeaniveekogude arvud, mida siin kasutatakse eelarvetena.
    • scenarios/maritime-spoof-position-push.toml (spoof-detect): +2 dB, mitte kandelainega joondatud spuufer, mis lükkab nelja satelliiti, et lohistada laeva 500 m. Liidetud monitor tuvastab selle (skoor 0,70 läve 0,50 vastu) vastuvõtja autonoomse terviklikkuse seire (RAIM) ja signaali kvaliteedi seire (SQM) abil; ainult võimsuse seire jätab selle märkamata.
    • scenarios/automotive-urban-canyon.toml (gnss-ins): auto 15 s alt läbisõidu ja 60 s teeäärse segaja katkestuse kaudu, 1,5 m poole sõidurea eelarve vastu. Liidetud katkestuse ruutkeskmine (RMS) viga on 1,9 m autotööstuse klassi mikroelektromehaanilise süsteemi (MEMS) seadme puhul ja 0,7 m taktikalise taseme võrdlusseadme puhul; vabalt jooksval seadmel triivib MEMS seade 850,8 m-ni.
    • scenarios/rail-tunnel-coast.toml (ins-trn-coast): taktikalise taseme INS rongil kiirusel 160 km/h tunnelis. See ületab 2 m (rööpa eristamine) 35,8 s järel, umbes 1,6 km sisenemisest, ja 20 m 107,3 s järel. See on ainult INS: mootoril pole odomeetrimudelit, nii et see on pessimistlik piir. README stsenaariumifailide arv liigub väärtuselt 77 väärtusele 82. Kõik viis kuuluvad komplekti käsu kshana example jaoks ja on loetletud brauseri mänguväljakul.

Model Context Protocoli server

  • Model Context Protocoli (MCP) server ulatub iga liigini ja jooksutuse iga vaateni: seitse uut tööriista, kokku neliteist. run_scenario jaotas juba iga liigi; agendil puudus tee liigi kehtiva stsenaariumini ja kolme väljundini, mida käsurida kirjutab tulemuse kõrvale. Uued tööriistad:

    • list_example_scenarios ja get_example_scenario teenindavad komplekti kuuluvaid etalonstsenaariume (tabel kshana example), igaüks oma liigi ja oma päise esimese lausega, bait-baidilt fail kataloogis scenarios/. Stsenaarium, mis on hoidlas, kuid ei kuulu komplekti, lükatakse tagasi koos põhjusega. Igal liigil peale lunar-llr-datum (mille andmelõik tarnitakse ainult hoidlaga) on vähemalt üks näide.
    • report_scenario annab jooksutuse aruande JSON-ina (JavaScript Object Notation) või prinditava HTML-lehena (HyperText Markup Language) (docs/REPORTS.md).
    • animate_scenario annab jooksutuse ajatarja animeeritud SVG (Scalable Vector Graphics) joonisena, HTML esitajana või nummerdatud kaadritena, pärast JSON kokkuvõtet sellest, mis joonistati (docs/ANIMATION.md). Vastus kannab kuni 120 kaadrit; käsurida kirjutab mis tahes pikkuse.
    • list_export_formats, export_interop ja import_route teenindavad koostalituse eksporte ja GeoJSON marsruudi importi (docs/INTEROP.md): CZML (Cesium Language), KML (Keyhole Markup Language), GeoJSON, STK (Systems Tool Kit) efemeriid .e ja SigMF (Signal Metadata Format), failide JSON registriga (järelliide, suurus ja SHA-256, 256-bitine Secure Hash Algorithm räsi) ja binaarse SigMF valimifailiga base64 kujul.

    Teek saab vaikimisi väljalülitatud funktsiooni bundled-scenarios, mis avab etalonstsenaariumide tabeli kui kshana::bundled_scenarios; ainult MCP server lülitab selle sisse, nii et Pythoni wheel ja WebAssembly moodul ei kanna endiselt stsenaariumi teksti. Uuringukomplektid (--study) jäävad ainult käsurealiidese omaks, sest komplekt nimetab kettal olevaid faile ja server ei loe ühtki. Edasi-tagasi testid käitavad iga uue tööriista komplekti kuuluvate stsenaariumide vastu ja kontrollivad mootori arve: spekter, päikesesüsteem, konstellatsioonid Kuu ja Europa ümber, kampaania pühkimine ning madala Maa orbiidi (LEO) signaali, läbimise, navigatsioonisõnumi, liidetud positsioneerimise, täppispunktpositsioneerimise, mittemaapealse võrgu ja otsast lõpuni liigid. Iga pind, mis nimetab MCP tööriistade arvu või loetleb tööriistad, ütleb nüüd neliteist, välja arvatud mänguväljaku leht kataloogis web/, mis asendatakse saidiga.

kshana.dev, Kshana Studio ja README

  • Ümber kujundatud kshana.dev. Üksik mänguväljaku leht on asendatud mitmelehelise saidiga: Home, Missions, Capabilities, Evidence, Developers, Editions ja Docs, Kshana Studio ühe klõpsu kaugusel. Iga selle diagramm, kaart ja arv on selle väljalaske mootori salvestatud jooksutus koos stsenaariumi ja lingiga, mis avab sama jooksutuse uuesti Studios; saidi ehitus lükkab tagasi teise mootori commit'i tehtud salvestuse. Dokumentatsioonilehed genereeritakse hoidla kataloogist docs/ ja paigaldusvalikud selle kanalitest. Fondid ja skriptiteegid serveeritakse kshana.dev'ist endast, nii et ükski leht ei päri midagi kolmanda osapoole hostilt. Vanad aadressid (/#playground, /#ledger, /#s=<scenario> jagamislingid, /?embed=1&… manuselingid ja ülejäänud) suunavad ümber oma uude kohta ning tundmatu aadress saab 404 lehe.
  • Kshana Studio, töölaud iga võimekuse jaoks. Studio avaneb algekraanil valdkonnaplaatide ja headelt esimeste jooksutustega, seejärel viib jooksutuse läbi viie nummerdatud sammu: Vali stsenaarium, Sea selle parameetrid, Käivita mootor kohapeal brauseris, Loe tulemusi (esmalt põhinäitajad, igaüks PASS või FAIL märgiga, kus jooksutus ütleb läve, seejärel paneelid) ja Jaga või ekspordi. Üks otsingukast leiab stsenaariume, valdkondi ja nendes olevaid välju ning hüppab juhtelemendile; jooksutusi saab kinnitada ja võrrelda; leivapuru ütleb, kus ollakse; telefonis muutuvad sammud sammuribaks. Igal stsenaariumi liigil on oma vaade, sealhulgas spektri koskdiagramm, päikesesüsteem, konstellatsiooni katvus, kampaaniad, animatsioon, jooksutuse aruanne, koostalituse eksportid ja madala Maa orbiidi ahel. Süvalink (?scenario=…&tab=…) avab sama jooksutuse nimetatud paneelil.
  • Uurimistöö ja tsiteerimine. Lehel Evidence on loetletud viis Kshana artiklit arXivis (2606,22054, 2606,24210, 2607,02566, 2607,05415 ja 2607,06212), igaüks koos kokkuvõtte, selle mootoriga arvutatud joonise, seda reprodutseeriva käsu, Studio lingi ja BibTeXiga, tarkvara tsiteerimise juhendi kõrval. README saab sama jaotise Research.
  • Avalik leht Kshana Pro jaoks. docs/PRO.md ja saidi leht Editions ütlevad, mida suletud lähtekoodiga Pro kiht samale mootorile lisab (kavandioptimeerija, määramatus ja tundlikkus, missioonidosjee, kampaania jälgimine, spektri kooseksisteerimine, kohapealne tööteenus, nõuete jälgitavus), mida iga neist toodab ja mida see ei tee. Iga Pro arv, mida sait näitab, on öeldud selles avalikus lehes. Pro ei lisa ühtki füüsikalist mudelit ja avatud mootor jääb tervikuks ja vabaks.
  • Ümber kirjutatud README. Lühikesed jaotised, üks pilt jaotise kohta, Kshana märk, kaks märgirida, genereeritud arhitektuuri-, stsenaariumivoo-, madala Maa orbiidi ahela ja kontrollimise pildid (tools/gen_readme_assets.py, mis ebaõnnestub aegunud pildi korral) ning Studio ekraanipildid, mis on tehtud töötavast Studiost tööriistaga tools/capture_studio_shots.mjs. crates.io, PyPI, npm-i ja MCP serveri README-d järgivad sama kujundust. Pikk viitematerjal on kokku volditud või viidud kataloogi docs/.

Muudetud#

  • Fail <scenario>.report.html on nüüd täpsem jooksutuse aruanne, mida kirjeldatakse jaotises Lisatud, ja käsurealiidese rida wrote … nimetab ka faili <scenario>.report.json. Ühelehekülgne tulemuskaart, mille see asendas, on muutumatu kujul RunOutput::html_report(), mida Pythoni ja WebAssembly sidumised endiselt tagastavad. OracleKind::modelled_reason() avab lause, mille docs/MODELLED-RATIONALE.md trükib iga MODELLED rea kohta; see dokument on muutumatu.
  • README ütleb, mille peale Kshana Pro ehitab. Jaotis Editions ja Kshana Pro rida jaotises „Support & professional services“ ütlevad nüüd, mida Pro mudelipõhise süsteemitehnika (MBSE) ja programmi tööriistad teevad ning milliseid avatud mootori avaldatud väljundeid see loeb (iga jooksutuse result.json ja report.json, stsenaariumifail, väljaühikute skeem ja kontrollimaatriksi sildid) ning millel kella digitaalsed kaksikud, kompromissiuuringud ja tõendipaketid avatud mootoris põhinevad. Ainult sõnastus: mootori väljund ega ükski avaldatud arv ei muutu.
  • Ühilduvus. Avalik enum navsignal::Modulation saab variandi Mboc, mis on katkestav muudatus kutsujale, kes seda ammendavalt sobitab. Stsenaariumi ephemeris-id veerud gcrs_r_m ja gcrs_v_m_s muutuvad (vt „Avaldatud arvude parandused“). Jooksutuse reprodutseerib endiselt see mootori versioon, mis selle tegi.

Parandatud#

  • MCP serveri export_table_csv nimetas ainsatena CSV (komadega eraldatud väärtused) tabeliga neli liiki; tabeli avaldab kuus. Tööriist tagastas tabeli alati stsenaariumile telecom-timing ja stsenaariumile leo-navmsg (selle analüüs encode-decode mudelil kepler16 või kepler-rac), kuid selle kirjeldus, keeldumissõnum ja liike loetlevad dokumendid jätsid mõlemad välja, nii et agendile öeldi mitte küsida. Need on nüüd nimetatud ja edasi-tagasi test toob mõlemad tabelid kätte.

  • Madala Maa orbiidi (LEO) navigatsioonisõnumi kaader ei olnud samad baidid igal platvormil ega ühe platvormi igas ehituses. scenarios/leo-navmsg-encode-decode.toml kodeeris kaadri tsüklilise liiasuskontrolliga 0x110315 väljalaskeehituses aarch64 macOS-il, 0x898BD8 sama lähtekoodi silumisehituses samal masinal ja 0x6A82D9 WebAssembly (WASM) ehituses; leo-navmsg-celeste-iod.toml andis natiivselt 0x6EDB2D versus 0xC6E4F0 brauseris. Kolm põhjust, igaüks jälgitud esimese lahknevuva väärtuseni:

    • Platvormide vahel. Tõeline orbiit oli mõlemal bitt-bitilt identne; sobituse lähtepunkt ei olnud. truth::state_to_elements võtab oskuleeriva kaldenurga funktsioonist acos ja periapsise argumendi funktsioonist atan2 ning kaks matemaatikateeki ümardavad neid viimases kohas erinevalt (üle 20 000 argumendi lähevad need lahku 781 siinuse, 858 koosinuse, 1 931 eksponentfunktsiooni ja 1 899 kahe argumendiga arkustangensi puhul).
    • Ehitusprofiilide vahel. Optimeeritud ehitus macOS-il ühendab ühe argumendi siinuse ja koosinuse üheks kutseks süsteemi kombineeritud rutiinile ning selle siinus ei ole üksiku sin oma 379 argumendi puhul 200 000-st; optimeerimata ehitus teeb kaks kutset. Stsenaariumi liik võtab siinuse ja koosinuse koos kolmeteistkümnes kohas.
    • Kellas. Teegi rand_distr normaaljaotuse valimivõtja kutsub oma kahes harvas harus hosti funktsioone exp ja ln: nelja miljoni algväärtusega tõmbe seas kolm erinesid viimases bitis natiivse ja WASM ehituse vahel.

    Levenbergi–Marquardti sobitus, mis sellel kaarel peatub oma 80 iteratsiooni piiril, mitte miinimumis, kannab ühe ühiku viimases kohas üle erinevatesse kvantitud väljadesse. Stsenaariumi liik arvutab nüüd iga transtsendentse funktsiooni uue faili src/portable_math.rs kaudu, mis kutsub puhast Rust-i teeki libm (juba sõltuvuspuus, nüüd nimetatud failis Cargo.toml), mis on kompileeritud ühest lähtekoodist iga sihtmärgi jaoks, mitte teegikutsest, mida optimeerija ümber kirjutab: leo_navmsg::{truth, fit, elements, codec, sisre, services} ja stsenaariumikood. Täisarvulised astmed sellel teel on kirjutatud välja ruutu tõstmise ja korrutamisena, sest f64::powi täpsus on määratlemata, ja tõelise kella normaaljaotuse hälbed tõmmatakse funktsioonist portable_math::standard_normal (Marsaglia polaarmeetod generaatori toorväljundil). Jagatud rutiinid, mille kaudu tõeline orbiit integreeritakse, on kirjutatud üks kord, matemaatikateegi suhtes üldistatult, koos kasti sisemise _portable sisenemispunktiga olemasoleva kõrval: sfäärilise harmoonilise kiirendus, tsoonilised ja takistuskiirendused, J2 sekulaarsed kiirused ja Klobuchari viivitus. Olemasolevad sisenemispunktid on viimase bitini muutumatud, nii et ühegi teise stsenaariumi liigi arv ei liigu. leo_navmsg::tests::the_encoded_frame_is_the_same_bytes_on_every_platform kinnitab kogu 171-baidise kaadri ja ühe kontrollväärtuse iga efemeriidimudeli kohta tavalises (optimeerimata) testiprofiilis igal platvormil ja ilma baashosti väravata; the_kind_never_calls_the_host_mathematics_library loeb stsenaariumi liigi lähtekoodi kettalt ja ebaõnnestub omase transtsendentse kutse, valimivõtja rand_distr või ülevaatamata mooduli kutse korral. Pärast muudatust annavad silumisehitus, väljalaskeehitus ja WASM ehitus kõigi viie stsenaariumi leo-navmsg jaoks baidi-baidilt identsed tulemusdokumendid. See muudab arve, mis siin parandusena kirjendatakse. Stsenaariumi leo-navmsg-id on selles väljalases uus, nii et midagi varasemas väljalases avaldatut ei liigu, kuid iga leo-navmsg arv liigub, natiivselt ja WASM ehituses, ning sellega koos etapp navmsg stsenaariumis leo-pnt-chain: orbiidi arvud, sest sobitus algab nüüd portatiivsetest elementidest, kella arvud, sest tõeline kell on sama protsessi teistsugune realisatsioon. docs/LEO-NAVMSG.md genereeritakse uuesti uutest tulemustest; selle avaldatud kontrollväärtus kodeerimise ja dekodeerimise stsenaariumi jaoks oli 0x110315 ja on 0x19105F (asend 1,126 mm piires täpsest sõnumist, kus see oli 0,665 mm, kell 0,185 mm piires, kus see oli 0,451 mm). Muutuste suurus millimeetri murdosa arvudes on sobituse tundlikkus, mitte kummagi komplekti viga: sobitus on muutumatu ja peatub endiselt oma iteratsioonipiiril.

  • Algväärtusega ümbervalim tõmbas 32-bitisel sihtmärgil teistsugused indeksid. Rng::gen_range tüübi usize kohal võtab generaatorilt 64 bitti 64-bitisel hostil ja 32 bitti 32-bitisel, nii et sama algväärtus andis teised indeksid ja jättis voo mujale, WASM ehituses. Kolm kohta tõmbasid nii: protsentiilide bootstrapid funktsioonis eval_stats (bootstrap_ci, bootstrap_auc_ci), segamine enne iga treeningläbimist funktsioonis impairment_ml ja permutatsioonitest funktsioonis impairment_study. Nüüd tõmbavad need funktsiooni portable_math::uniform_index kaudu, mis valib alati tüübina u64: täpselt nagu 64-bitine host, nii et ükski natiivne arv ei liigu. See muudab WASM paketi avaldatud arve, mis siin parandusena kirjendatakse: stsenaariumi quantum-anomaly-detect-id kõvera aluse pindala bootstrapi vahemik (quantum_auc_ci, trade.foms[0].ci95) oli brauseris [0.9901265, 0.9938305] ja on nüüd natiivne [0.99035875, 0.993861].

  • STK efemeriidifailide nimed liikuja tunnustest. Liikuja tunnus, milles oli / või tühik (konstellatsioonikiht ja satelliit, Pulsar inclined/S1-0163), pani käsurealiidese käsul --export stk paanikasse; iga tunnus läbib nüüd turvalise failiosa (tähed, numbrid, -, _).

  • TEME→GCRS nutatsiooni märk, mida kirjeldatakse ülal jaotises „Avaldatud arvude parandused“, sest see muudab avaldatud väljundit.

0.28.0 - 2026-09-26#

Lisatud#

  • Stsenaariumi liik slot-timing (src/slot_timing.rs): sekundid, kuni vabalt jooksev kell lahkub ajaindekseeritud marsruutimise või ülesandestamise pesa valvest, iga sel hetkel panustav liige koos nimetatud domineerivaga, pärast viimast asendilahendust järele jäänud aeg ning suurim asendilahenduse intervall, mis hoiab kella sees, asendilahenduse latentsuse netona. Kell tuleb klassi vaikeväärtusest, telecom-timing andmelehe eelseadest, otseandmelehest (Alani hälbe maksimumid, vananemine, temperatuurikoefitsient) või mõõdetud faasikirjest. Rikkumine, mis ületab pikima keskmistamisaja, mida allikas toetab, märgitakse ekstrapoleeritud. Komplekti kuuluv näide: slot-timing-ocxo-leo. Vt docs/SLOT-TIMING.md.
  • Mõõdetud punase müra põhi. Faasikirje kattuv Alani hälve sobitatakse kaalutud vähimruutudega valge faasi ja IEEE Std 1139 sagedusmodulatsiooni baasis (slot_timing::fit_weighted), iga punkt kaalutud oma ekvivalentse vabadusastmete arvuga, nii et holdover'i vastus võib toetuda kella enda põhjale klassi eelduse asemel. Kaalumata sobitus pani valge müra testikirjele võlts-flikkerpõhja ja lühendas 2 000 s rikkumist 30 % võrra.
  • Holdover'i pöördamise suletud komplektiga valideerimine päris kellal (tests/slot_timing_cs5071a_holdout.rs): sobitatud 5071A tseesiumi ja vesinikmaseri kirje esimesele kolmandikule, jäävad ennustatud ühe sigma rikkumised kuuel lävel vahemikus 0,5 kuni 2,5 ns väärtuse 0,84 kuni 1,03 piiresse teisel kahel kolmandikul mõõdetud rikkumistest, lävi 1,5 fikseeriti enne testi esimest käitamist. Kontroll (ühesekundiline Alani hälve loetud valge müraga) eksib umbes 1 000-kordselt ja ei täida lävendit. Uus VALIDATED registri (ledger) rida; töövoog realdata-clock käitab seda nüüd.
  • Sama ennustus päris kristallostsillaatoril (tests/slot_timing_ocxo_holdout.rs, scripts/fetch_ocxo.sh): mõõdetud ahjuga juhitud kristallostsillaatoril on suletud komplektiga ennustus konservatiivne, 0,59 kuni 0,70 mõõdetud rikkumisest ega kunagi hilisem, ja enamasti lävendi 1,5 väljaspool, sest selle ostsillaatori mürapõhi vähenes 5,5-tunnise kirje jooksul poole võrra; valimis sobitatuna jääb see piiridesse 0,98 kuni 1,17. Kristallijuhtum ei ole valideeritud ja jääb MODELLED. Jooksutus paljastas ka puuduva liikme: kristalli sagedus hulbib, nii et mudel kannab nüüd asendilahenduse hetkel teada oleva sageduse määramatust (fix_frequency_sigma); ilma selleta oli ennustus optimistlik kuni 2,5× võrra.
  • Sama ennustus orbiidil olevatel aatomkelladel (tests/slot_timing_igs_holdout.rs, scripts/fetch_igs_clocks.sh): 14 päeva International GNSS Service'i lõplikke kelli GPS Block IIF satelliitidele, protokoll kirja pandud enne andmete allalaadimist. Kaheksa kümnest satelliidist jääb lävendi 1,5 sisse; G25 ja G30 ennustavad rikkumisi kuni umbes kaks korda hilisemaks kui mõõdetud. Protokoll nõuab, et iga satelliit läbiks, nii et orbiidi juhtum ei ole valideeritud ja jääb MODELLED; tulemus on kinnitatud.
  • Temperatuuriga kompenseeritud kristalli (TCXO), ahjuga juhitud kristalli (OCXO) ja rubiidiumi aatomsagedusstandardi (RAFS) kellaklassid (ClockClass::Tcxo, Ocxo, Rafs), osad, mida lennutab kaubanduslik väikesatelliidi buss või maapealne lüüs, igaüks tsiteerib ühte avalikku andmelehte (ClockClass::source). Lisatud ClockClass::ALL, id ja from_id. Stsenaariumi quantum-trade parameeter baseline_clock_class aktsepteerib kolme uut tunnust. Avaliku enumi variantide lisamine on katkestav muudatus kutsujale, kes seda ammendavalt sobitab.
  • Ajakaitsetase orbiidil olevale vastuvõtjale (src/orbital_timing.rs, stsenaariumi slot-timing-id valikuline jaotis spoofing): kui kaua maapealne spuufer võib madala Maa orbiidi satelliidini ühe läbimise jooksul ulatuda, tõmme, mille öeldud maksimaalse kasvukiirusega spuufer kogub, enne kui satelliit lahkub selle ulatusest või jookseb sõltumatu kontroll, ning kas iga maakontakti- või ristlingi kontroll on sellest spuuferist sõltumatu. Taandub täpselt funktsioonile tpl::timing_protection_level_ns kellal ilma flikker-, valge faasi või juhusliku jooksu müra. MODELLED.
  • Kolm märget: docs/SLOT-TIMING.md (sealhulgas see, millise hulkumismõõdiku vastu tuleks pesa vastu võtta: maksimaalne absoluutne ajaviga, mitte maksimaalne ajaintervalli viga ega ajahälve, ja miks), docs/DECEIVED-TIME.md (petetud ajal rakendatud allkirjastatud käsk suunab endiselt valesti) ja docs/DEPLOYMENT-TARGETS.md (kus Kshana töötab; no_std lennutuuma ei pakuta).

0.27.4 - 2026-09-26#

Väljalase v0.27.3 jõudis crates.io-sse (kshana ja kshana-mcp) ja PyPI-sse, seejärel peatus npm-is, nii et npm, ghcr.io MCP kujutis, MCP register, JetBrains Marketplace ja kshana.dev ei saanud seda kunagi kätte. 0.27.4 kannab sama mootori koos allpool oleva väljalaskeparandusega igasse kanalisse.

Parandatud#

  • npm-i avaldamise samm nimetab tarballi selge teega. npm loeb paljast npm-dist/kshana-0.27.3.tgz GitHubi lühendiks owner/repo, nii et v0.27.3 npm-i töö üritas kloonida github.com/npm-dist/kshana-0.27.3.tgz ja ebaõnnestus teatega „Permission denied (publickey)“. Tarball ise oli ehitatud ja atesteeritud. Samm avaldab nüüd ./npm-dist/*.tgz. Kõik pärast npm-i väljalaskejärjekorras (MCP kujutis, JetBrains plugin, kanalite pariteedi kontroll ja sait) jäeti vahele, nagu kavandatud.

Muudetud#

  • Telecom-timing ja gnss-ins ühikute kataloogid on kopeerimise ja kleepimise tuvastamisest vabastatud, sama poliitika ja põhjendustesti alusel nagu teised kataloogid. SonarCloudi kvaliteedivärav oli uue koodi dubleerimise tõttu punaseks läinud (4,0% versus 3%) ning iga dubleeritud plokk oli ühikute rida või ITU-T maski kirje.

0.27.3 - 2026-09-25#

Lisatud#

  • scenarios/small-uas-jammed-nav.toml: kui kaua väikese drooni navigatsioon peab vastu pärast GNSS-i segamist. See käitab lennujuhtimisklassi mikroelektromehaanilist (MEMS) inertsiaalseadet Bosch BMI088 taktikalise taseme seadme vastu. GNSS (ülemaailmne satelliitnavigatsioonisüsteem) signaal on nominaalne 100 s, seejärel keelatud 60 s (jamming-demo.toml näitab, miks lähedal olev segaja seda teeb). BMI088 nihked on jäägid, mis jäävad pärast käivituskalibreerimist, võetud selle andmelehe temperatuurikoefitsientidest (BST-BMI088-DS000-19 rev 1,9): 0,015 °/s K kohta güroskoobile ja < 0,2 mg K kohta kiirendusmõõturile. Failis on märgitud kaks eeldust: 10 K soojenemine pärast kalibreerimist ja jätkuv soojenemine 1 K minutis lennul. Lennuaegne triiv on viga, mida filter ei jõua enne segamise algust õppida, ja see lõpetab rannikusõidu. Iga arv on modelleeritud; selle valideerimiseks on vaja segatud keskkonna lennulogisid. kshana example small-uas-jammed-nav trükib selle.

  • Iga stsenaariumi gnss-ins andur saab seada oma filtri eelteadmise ([imu_quantum.filter_prior] või [imu_classical.filter_prior], koos sigma_accel_bias ja sigma_gyro_bias). Vaikeväärtus on muutumatu, nii et iga olemasolev stsenaarium annab sama tulemuse. Tarbijaklassi seadme jääkgüroskoobi nihe asub umbes 26 sigmat taktikalise taseme vaikeväärtusest väljas, kus filter ei õpiks seda kunagi. Eelteadmine, mis ei ole lõplik ja positiivne, lükatakse tagasi ning tulemus kordab eelteadmist, kui see on seatud.

  • kshana example [<name>] annab registrikasutajale stsenaariumi käitamiseks. Kasutajal cargo install kshana on käivitusfail ja kataloogi scenarios/ pole, nii et esimene käsk, mille iga kiirstart andis, ebaõnnestus. Käsurealiides (CLI) kannab nüüd 75 etalonstsenaariumi, mis jooksevad üksi, bait-baidilt, kompileeritud kataloogist scenarios/ (src/bundled_scenarios.rs; tabel asub CLI binaaris, nii et Pythoni wheel ja WebAssembly moodul ei kasva). kshana example loetleb need; kshana example clock-holdover > clock-holdover.toml kirjutab ühe. Teised kaks faili on ainult hoidlas: lunar-llr-datum loeb arhiveeritud kuu laservahemõõtmise andmeid, mis tarnitakse ainult hoidlaga, ja quantum-pnt-demonstrator.suite on uuringumanifest, mis käitab kolm kõrvalfaili käsuga --study. Kummagi küsimine ütleb põhjuse ja lõpetab koodiga 2, selle asemel et trükkida midagi, mis ei saa üksi jooksta. tests/cli_first_run.rs hoiab tabeli kataloogiga kooskõlas mõlemas suunas, nii et uus stsenaariumifail, mis ei kuulu komplekti ega ole nimetatud ainult hoidlas olevaks, ebaõnnestub.

  • Iga kella, orbiidi, hübriid- või liitmistulemuse näitaja ütleb nüüd tulemuses endas, kas see on VALIDATED või MODELLED. Tulemusdokument saab ploki figure_tiers, alati selle viimase võtmena. See loetleb iga teatatud näitaja (näiteks quantum.fom.timing_p95_ns) selle tasemega — VALIDATED tähendab kontrollitud sõltumatu välise sõltumatu etaloni vastu, MODELLED tähendab esimestest printsiipidest mudelit, mida testitakse sisemiselt — ja kontrollimaatriksi reaga, millest tase loetakse. Tase tuleb failist src/verification.rs faili src/fom_label.rs kaudu, nii et teist tabelit, mis laiali läheks, pole. Enne seda esinesid sõnad „valideeritud“ ja „modelleeritud“ kella holdover'i tulemuses null korda ning toorest JSON-i (JavaScript Object Notation) lugev lugeja ei saanud neid kahte eristada. Positsiooninäitajatel hybrid ja fusion pole omavat maatriksi rida, nii et need on loetletud kategoorias untiered taset andmata. Plokk ei kanna arve. See on tõestatud lisandiks, mitte eeldatud: selle eemaldamine annab muudatuse-eelse dokumendi tagasi bait-baidilt kõigi viie liigi puhul (mootori test) ja mõlemad golden-harnessid (tests/registry_golden.rs, tests/cross_platform_golden.rs) eemaldavad nüüd täpselt selle võtme, ja ainult siis, kui see on viimane, seejärel räsivad ülejäänu oma muutumatute külmutatud konstantide vastu. Loend igas harnessis kinnitab, millised stsenaariumid peavad plokki kandma, nii et väljajätt ei saa vaikselt laieneda.

  • Stsenaariumi telecom-timing-id vastab ajastusinseneri ühikutes: ajaviga, maksimaalne ajaintervalli viga (MTIE) ja ajahälve (TDEV), igaühel PASS või FAIL ja varu Rahvusvahelise Telekommunikatsiooniliidu telekommunikatsioonistandardimise sektori (ITU-T) maskide vastu. Maskid on ümber kirjutatud kehtivatest väljaannetest: G.8272 (07/2025) esmase etalonaja kella (PRTC) klassidele A ja B, G.8272.1 (2024) Amd. 1 (07/2025) täiustatud PRTC jaoks lukustatud režiimis ja holdover'is (sealhulgas selle ajavea ümbris, mis tõuseb 30 ns-lt 100 ns-ni holdover'i perioodi jooksul, mille määrab see, kui kaua kell oli lukustatud), G.8273.2 (2023) Amd. 2 (11/2025) telekommunikatsiooni piiri- ja ajaorjakellade jaoks, klassid A kuni D, ja G.8271.1 (2022) Amd. 3 (05/2025) võrgupiiridele tugipunktis C. Iga kirje, mille need soovitused jätavad „edasiseks uurimiseks“, on puudu, mitte hinnatud, ja docs/TELECOM-TIMING.md loetleb iga arvu koos selle tabeli või klausliga ning iga väljajäetud punkti. Aruanne annab ka aja, mil iga ajavea eelarve ületatakse: vaikimisi 100 ns ePRTC holdover'i vaikeväärtus, 400 ns võrgu holdover'i jaotus, 1 100 ns punkti C piir ja 1,5 mikrosekundi klassi 4 otsast lõpuni nõue.

    Sisend on kas sünteetiline holdover või oma jada. Sünteetiline kasutab ühte nelja ostsillaatori eelseadest (ahjuga juhitud kristallostsillaator, rubiidiumstandard, tseesiumstandard ja kiibiskaalas aatomkell), igaüks kannab nimetatud Microchipi andmelehe stabiilsuse, vananemise ja temperatuuri arve. Kuidas need arvud muutuvad valgeks, flikker- ja juhuslikuks kõnnisageduse müraks, vananemiseks ja temperatuuriliikmeks, on öeldud igas aruandes ja märgitud MODELLED. Oma jada on paarid [time_s, time_error_ns], otse (nii see brauseris jookseb) või natiivsetes ehitustes komadega eraldatud väärtuste failist. MTIE/TDEV tabel, iga valitud maski piiriga selle kõrval, kirjutatakse jooksutuse CSV artefaktina.

    scenarios/telecom-prtc-holdover-24h.toml on 24-tunnine rubiidiumi holdover vananemise, flikkeri ja ööpäevase temperatuuritsükliga: selle suurim ajaviga on 603,2 ns, see ületab 100 ns 8 206 s pärast kadu ja jääb kogu päeva 1,5 mikrosekundi sisse ning ei täida täiustatud PRTC holdover'i ümbrist, nagu kell, mis pole tseesiumiklassi, peabki. scenarios/telecom-tie-ingest.toml näitab otsesisendit. Stsenaariumi liigi teatatud MTIE ja TDEV on kontrollitud paketi allantools vastu kinnitatud 2 048 valimiga holdover'i jadal, MTIE täpselt ja TDEV 1.1e-15 piires, nii et maatriks saab ühe VALIDATED rea ja kaks MODELLED rida (maski ümberkirjutus ja eelseaded) ning on nüüd 171 rida — 65 VALIDATED, 102 MODELLED, 4 PARTNER. Väljaühikute katvus läheb 60-lt 61 liigist väärtusele 61 62 liigist ja 1 742 kirjeldatud väljalt väärtusele 1 788. Stsenaariumi liik on uus ja lisanduv: ükski olemasolev stsenaarium, kinnitus ega avaldatud arv ei liigu.

  • Mänguväljak käitab mootorit taustal Web Workeris, nii et aeglane stsenaarium ei külmuta enam lehte. web/engine-worker.mjs hostib WebAssembly mootorit ja web/engine.mjs suunab sellele iga stsenaariumi täitmise — jooksutused, parameetripühkimised ning SP3 / OMM / OEM / CSV eksportid. Jooksutus, mis kestab üle 150 ms, näitab hõivatud olekut (Run keelatud, „Running… N s“) ja nuppu Cancel, mis lõpetab ja taaskäivitab workeri; brauser, mis ei saa moodulworkerit käivitada, langeb tagasi vanale põhilõime teele. cislunar-arc-recovery, mis jäeti kataloogist välja, sest see külmutas lehe, on tagasi selles, märgitud aeglaseks: see võtab Chrome'is umbes 13 s (neli mootorikutset umbes 3 s kaupa), mille jooksul leht jääb reageerivaks.

  • Iga stsenaariumi cislunar-observability teatatud suurus kannab nüüd ühikut, päritoluklassi ja määratlust — viimane liik, välja arvatud üks, kogu kasti hõlmavas erandite loendis. Kõik 41 RELEASED dokumendi arvuvälja on kirjeldatud, nii et väljaühikute katvus läheb 59-lt 61 liigist väärtusele 60 61 liigist ja 1 698 kirjeldatud väljalt väärtusele 1 742, määratluseta mahajäämus on muutumatult 239.

    Seda blokeeris kinnitus, mis külmutab välja antud dokumendi ja mis nimetas units võtmena, mida dokument ei tohi kunagi juurde saada. Selle lisamine oleks tähendanud selle väite kustutamist ja kolme räsi uuesti baseerimist kolmes failis — kuju, mida ei saa eristada regressiooni varjamisest. Selle asemel tõestavad kaks kinnitust, mis seda dokumenti mõõdavad, nüüd, et lisandus on lisanduv: kumbki eemaldab ploki units tagasi ja räsib uuesti enne ploki olemasolu külmutatud konstandi vastu ning mõlemad konstandid on muutumatud. Mutatsioon kinnitab, et garantii on päris — väljalastud väärtuse liigutamine ja kogu dokumendi räsi uuesti baseerimine nii, nagu hooletu parandus seda teeks, ei takista siiski eemalda-ja-räsi-uuesti ebaõnnestumist. Kolmas kinnitus üldises registri golden-harnessis on uuesti baseeritud kooskõlas kuue õdega, mis uuesti baseeriti täpselt sel põhjusel, ja selle väärtust kandev expect_summary literaal ei liigu.

  • realtime-frame-eop teatab, millise tõe vastu iga Maa orientatsiooni rida hinnati ja kui sageli varuvariant rakendus. table3_joint_eop[].{ut1, polar_motion,combined} saavad truth_source ja truth_fallback_rows. Põhi final hinnatakse Bulletin B lõpliku vastu ja see saab kasutada ainult epohhe, mis ühe avaldavad; iga dN rida hinnatakse funktsiooni truth_pm()/truth_ut1() vastu, mis langevad tagasi Bulletin A kiirele väärtusele. Komplekti kuuluval 2026 väljavõttel on see 12 valimit 31-st ühe päeva juures, versus 0 põhjal — nii et põhjarida ja selle kõrval olevad ennustusread toetuvad mõõdetavalt erinevale tõele, mida aruanne nüüd ütleb, selle asemel et jätta see järeldada valimiarvust, mis kasvab seal, kus pesastatud horisondid ütlevad, et see ei saa.

  • moonlight-service-volume annab suuruselt sobitatud Kepleri baasjoone. ephemeris_comparison.keplerian_matched jooksutab illustratiivse konstellatsiooni uuesti RETRIEVED komplekti enda satelliitide arvuga, olemas ainult siis, kui arvud erinevad. Arv on selle kavandi geomeetria osa — RAAN ja keskmine anomaalia on mõlemad jaotatud kujul 360k/n — nii et ilma selleta hinnati viiest satelliidist saadud komplekti kaheksa satelliidiga illustratiivse komplekti vastu ning kavand ja suurus aeti segi. Viie satelliidiga LANS etalonkomplekti puhul osutub 14,24-punktilisest katvuslõhest 8,68 kolmeks puuduvaks satelliidiks ja ainult 5,56 punkti kavandiks; nelja tegelikult Kuu orbiidil oleva kosmoselaeva puhul saavutab sihipäraselt ehitatud neljasatelliidine komplekt 4,86 %, kus need saavutavad 0 %. Test kinnitab, et sobitatud rida on uuesti ehitatud konstellatsioon, mitte seatud konstellatsioon ümbernimetatud, nagu see algselt kirjutati ja mida jooksutus siis teatas.

  • Üheksa võimekuse kaarti avalikul saidil, mis katavad 22 kontrollimaatriksi rida, mis tarniti ilma tootetasandi kaardita. Mootor oli kasvatanud võimekuste perekonna — ARAIM kontroll avaldatud Working Group C etalonvektorite vastu, päris saadud Kuu konstellatsiooni geomeetria, Kuu keelamise kontuur mõõdetud C/N₀ ribaga, VLBI-ajakava ja jaama kovariatsiooni samm, optiline ja RF üleandmine ristmodaalse rikkesüstimisega, reaalajas Maa orientatsiooni ennustus arhiveeritud Bulletin A vastu, navigatsiooni ja side avause jagamine, INS/TRN rannikusõit ning ühikute ja päritolu katvus — igaühel oma maatriksi rida ja komplekti kuuluv stsenaarium ning ühtegi neist ei nimetatud saidil kshana.dev. Kaardi ja rea katvus läheb 72-lt 168 realt väärtusele 94.

  • Mänguväljaku kataloogi lisati kaheksa stsenaariumi. Võimekuse kaardi nupp Run ilmub ainult siis, kui web/app.js kannab ka faili; kuus kaarti nimetasid stsenaariumi, mida see ei kandnud, nii et need renderdati ilma võimaluseta neid käitada — üks neist, päris laservahemõõtmise andmepunkt, oli selles olekus alates tarnimisest. tests/scenario_examples_doc_sync.rs kontrollib nüüd invarianti mõlemas pooles: kaardi sihtmärk run peab olema komplektis kataloogis scenarios/ ja kataloogi pakutav. Mutatsioonitestitud mõlema rikkerežiimi vastu.

  • Stsenaariumi moonlight-service-volume väljastab oma satelliidipõhise geomeetria failina <scenario>.table.csv, kui eksportimiskoht on seadistatud (G11). See on suurim massiiv, mille kast avaldab — 2304 rida välja antud ühises side- ja navigatsioonitabelis — ja see jõudis tarbijateni ainult JSON-i sees, kujul, mis lühendas õdestsenaariumi 57-punktilise kõvera 23 punktini veeru all, mis väitis neid kõiki. Üks rida lingi kohta, ridade arv päisereal, antennide veerud olemas ainult siis, kui antenn oli seadistatud. Jooksutus ilma eksportimiskohata on baidi-baidilt muutumatu ega kirjuta faili.

  • SBOM kirjeldab nüüd seda, mis tarnitakse: 60 komponenti sai 66-ks. scripts/gen-sbom.sh loetles iga vaikefunktsioonide lahenduse paketi, sealhulgas arendussõltuvused. See pani materjalide loendisse sgp4 ja chrono — ainult testimiseks mõeldud craty, mis pole ühtegi artefakti kompileeritud — ja jättis välja ahela --features python, millega PyPI wheel lingib (pyo3, pyo3-ffi, pyo3-macros, pyo3-macros-backend, pyo3-build-config, portable-atomic, target-lexicon, heck), mis on selle wheel'i võõrfunktsioonide piir. Skript käib nüüd lahenduse graafi läbi paketist kshana ainult tavaliste ja ehitusservade kaudu, vaikimisi, python ja wasm funktsioonikomplektide liidu kohal (npm-i pakett kannab sedasama SBOM-i), iga sihtplatvormi jaoks. Kinnitatud CycloneDX standardi järgimise otsus baseeritakse uuesti selle kinnitatud generaatori kaudu: 60 → 66 komponenti, 53 → 60 liitlitsentsiavaldist ja endiselt null skeemiviga, kui need on paigutatud standardsesse kujusse expression.

  • CSV reprodutseeritavuse tabel jõuab igale uksele, mitte ainult käsurealiidesele ja Pythoni wheel'ile. MCP server saab seitsmenda tööriista, export_table_csv, mis jooksutab stsenaariumi ja tagastab baidistabiilse tabeli, mille käsurida kirjutab failina <scenario>.table.csv — või vea, mis nimetab liigid, mis seda avaldavad (realtime-frame-eop, lunar-time-budget, lunar-jamming ja moonlight-service-volume ainult siis, kui export_site_lat_deg + export_site_lon_deg on seatud). WebAssembly moodul saab funktsiooni table_csv, mis tagastab sama teksti või undefined. MCP edasi-tagasi test ja Pythoni sidumise testid kinnitavad nüüd tagastatud CSV-d bait-baidilt faili tests/golden/realtime-frame-eop.csv vastu ning kinnitavad, et RunOutput.write_csv tagastab kirjutatud baidid ja väärtuse 0 ilma faili loomata liigi puhul, millel tabelit pole. Iga pind, mis nimetab MCP tööriistade arvu või loetleb tööriistad, ütleb nüüd seitse.

  • run_all WebAssembly moodulis: üks mootori jooksutus iga väljundi jaoks. run, chart_svg, summary ja table_csv täidavad igaüks stsenaariumi otsast peale, nii et mänguväljak maksis iga klõpsu eest nelja täisjooksutuse — umbes 12 s asemel 3 s stsenaariumi cislunar-arc-recovery jaoks brauseris. run_all tagastab {json, svg, summary, csv} ühest jooksutusest ja mänguväljak kasutab seda nüüd. See ühtib nelja eraldi kutsega bait-baidilt.

Parandatud#

  • PARANDUS: GNSS/INS filtri güroskoobi nihke sidestusel oli vale märk ja stsenaariumi gnss-ins katkestuse arvud muutuvad. Veaoleku laiendatud Kalmani filter (EKF) hoiab mõlemat inertsiaalset nihet jääkidena (tõeline miinus jooksev hinnang, tagasi toidetud liitmisega). Kiirendusmõõturi veerg juhtis kiiruse viga väärtusega +C_b^n b_a, kuid güroskoobi veerg juhtis orientatsiooniviga väärtusega −C_b^n b_g. Jääkgüroskoobi nihe pöörab arvutatud orientatsiooni tegelikult väärtusega +C_b^n b_g, nii et iga güroskoobi nihke hinnang lükkas vales suunas. Pakett püsis stabiilne ainult seetõttu, et selle vaikimisi güroskoobi nihke eelteadmine (1e-4 rad/s, 1-sigma) oli piisavalt kitsas nende olekute paigal hoidmiseks. Laiema eelteadmisega filter hajus ka siis, kui tõeline güroskoobi nihe oli null: 93 m liidetud katkestuse viga sai 4,3 km-ks. Stsenaariumi scenarios/gnss-ins.toml avaldatud arvud muutuvad järgmiselt:

    gnss-ins.toml enne (≤ 0.27.2) pärast
    külma aatomi IMU, liidetud katkestuse RMS 96,1 m 1,9 m
    külma aatomi IMU, nõuetekohane rannikusõit (50 m) 30 s 60 s (kogu katkestus)
    taktikaline IMU, liidetud katkestuse RMS 62,5 m 3,1 m
    taktikaline IMU, nõuetekohane rannikusõit (50 m) 37 s 60 s (kogu katkestus)

    Vabalt jooksvad arvud (130,7 m ja 314,3 m) ei muutu; need ei kasutanud kunagi filtrit. Paketi varasem lugemine, et liidetud rannikusõitu piirab üleandmise orientatsioonipõhi ja see seetõttu parema anduriga ei parane, oli selle vea artefakt ja see võetakse tagasi. Konstantsete, müravabade nihete korral õpib filter need nüüd ära, kuni GNSS on olemas, nii et liidetud rannikusõit on parim juhtum. Väline filterpy etalon (tests/gnss_ins_sensor_fusion_reference.rs) kontrollib ainult mõõtmisuuendusi, mistõttu see ei näinud kunagi levitamist. Kaks testi kontrollivad nüüd märki otse ja mõlemad ebaõnnestuvad vana märgi korral. Esimene, failis closed_loop.rs, söödab teadaoleva jääkgüroskoobi nihke läbi strapdowni ja nõuab, et filter ennustaks tekkiva orientatsiooniveaga 2 % piires. Teine nõuab, et lai eelteadmine õpiks 1e-3 rad/s güroskoobi nihke ja püsiks 6 m sees. Stsenaariumi gnss-ins platvormideülene golden on selleks põhjuseks uuesti kinnitatud ja ühelgi teisel.

  • Iga registri kiirstart töötab nüüd puhtal masinal nii, nagu on kirjutatud. Enne seda muudatust mõõdetult lugesid crates.io ja PyPI (Python Package Index) näited scenarios/clock-holdover.toml, mida registripaigaldus ei sisalda, ja npm-i näide jooksis Node.js-is kokku veaga TypeError: fetch failed, sest paketi init() toob oma WebAssembly binaari ja Node'i fetch ei saa lugeda kohalikku faili. Nüüd:

    • README.crates.md ja README.pypi.md kannavad seda stsenaariumi otse, nagu README.npm.md juba tegi. Rust-i plokk on terve programm oma funktsiooniga main, sest rustdoc'is peidetud rida # Ok::<…>, millega see lõppes, on crates.io-s nähtav ja ei kompileeru kleebituna. tests/readme_code_fences_doc_sync.rs kompileerib seda endiselt bait-baidilt ja nüüd keeldub ka peidetud reast plokis.
    • README.npm.md eraldab brauseri Node.js-ist ja annab Node'i retsepti, mis loeb binaari kettalt ja annab selle funktsioonile initSync. Doc-sync test aktsepteerib initSync laadijana, mille wasm-bindgen genereerib.
    • Kõik kolm manustavad stsenaariumi lühendamata päritolustringidega, nii et stsenaariumi räsi on igal pinnal 5ba83a232b94. npm-i näide lühendas neid varem, mis andis sellele käsurealiidesest erineva räsi.
    • Reprodutseeritud selle puu kohalikest ehitustest: värske cargo new projekt teesõltuvusega pakendatud craty peale ehitas ja käitas Rust-i näite; maturiniga pakendatud lähtekoodist ehitatud wheel, paigaldatud uude virtuaalkeskkonda, käitas Pythoni näite; ja pakett wasm-pack --target web, pakitud ja npm-iga paigaldatud, käitas Node'i retsepti. Kõik kolm trükkisid sama kokkuvõtterea.
  • cargo run -- <scenario.toml> töötab kloonist. Cargo.toml seab default-run = "kshana". Ilma selleta keeldus cargo teatega „could not determine which binary to run“, mille tabas iga dokumentatsiooni rida cargo run --.

  • Käsurealiidese esimese minuti vead ütlevad, mida järgmisena teha. Stsenaariumi tee, mida pole olemas, lisab nüüd vihje, mis osutab käsule kshana example, ja teine positsiooniline argument trükib kasutusteksti lisaks argumendi nimetamisele. --help, --version, tundmatu valiku viga (väljumiskood 2) ja käsu --validate ühe rea ok: õnnestumisel olid juba main-harus. tests/cli_first_run.rs katab nüüd need kõik, sest ükski test ei käitanud binaari ühegi nende jaoks varem.

  • Pythoni list_kinds() on dokumenteeritud ühe JSON-stringi tagastajana, mitte loendina. See tagastab samad metaandmed, mis scenario_kinds(), serialiseeritult, nii et selle läbikäimine käib märke. See säilitab oma stringitagastuse, et olemasolevad kutsujad ei katkeks. kshana.pyi, sidumise dokumentatsioonikommentaar, docs/PYTHON_API.md ja README.pypi.md ütlevad seda nüüd ja osutavad funktsioonile scenario_kinds().

  • Kolm registri README-d kirjutavad iga lühendi esimesel kasutamisel lahti. PNT on nüüd lahti kirjutatud tunnuslauses, kus see esimest korda esineb, ning CLI, TOML, JSON, SVG, CSV, CSAC, HTML, URL ja API on lahti kirjutatud failides, mis neid kasutavad. Sõltumatu etaloni tabeli pealkiri ei ütle enam „CI-gated“ enne, kui CI on defineeritud.

  • Parandatud avaldatud arv: kahe konstellatsiooni ARAIM kättesaadavus kaasasoleval Celestraki GPS + Galileo TLE-del. docs/CAPABILITY.md väitis, et Galileo koondamine tõstab kättesaadavuse väärtuselt 0,21 väärtusele 0,67 VAL-i 12 m juures ja et konstellatsiooniviga taluv režiim on ainult kahe konstellatsiooniga piiratud. See tuli sellest, et tests/araim_dual_real_data.rs propageeris iga satelliiti selle enda TLE epohhist (parse_propagators kaotab epohhi), ja nende failide epohhid hõlmavad 70,6 h (GPS) ja 335,7 h (Galileo), nii et satelliidid asusid vastastikku ebajärjekindlatel aegadel. Test hoiab nüüd iga epohhi (parse_tle) ja hindab iga satelliiti ühel ühisel UTC hetkel, komplekti hilisimal TLE epohhil (2026-06-07T07:21:04). Mõõdetud kättesaadavus sama 24 h, 289 valimi võrgul on nüüd ainult GPS 0,993 (oli 0,208), koondatud 1,000 (oli 0,671) ja konstellatsiooniviga taluv kaksik 0,990 (oli 0,031); APV-I piiril läheb kaksikrežiim väärtuselt 0,180 väärtusele 1,000. Järeldus pöördub: järjekindlal taevalaotusel kannavad kaks konstellatsiooni konstellatsioonivea hüpoteesi VAL-i 12 m juures. Samad arvud tulevad ka varaseima TLE epohhiga etalonina. Testi enesekontroll kinnitab selle kättesaadavuse tsükli valim valimi haaval funktsioonile araim_dual_constellation_availability, nii et ainus erinevus on ajajoondus. docs/CAPABILITY.md ja docs/REAL_TLE_GUIDE.md § 3 kannavad uusi arve; allpool olev kirje 0.13.0 jäetakse nii, nagu see välja anti.

  • Avalikud pinnad ei reklaami enam RINEX 4 valideeritud olevana. Mootor keeldub nüüd RINEX 4 navigatsioonifailist nime järgi, mitte ei dekodeeri seda valesti, kuid standardite võrk näitas endiselt kaarti „RINEX 3 / 4“ siltiga valideeritud, seotud navigatsiooniparseri RINEX-3 tõendiga. Kaart on nüüd „RINEX 3“ ning README, docs/CAPABILITY.md, docs/STANDARDS.md, ROADMAP.md ja võimekuse kokkuvõte ütlevad, mis on tõsi: RINEX 3.0x vaatlusfailid parsitakse, 4,00 vaatluse paigutust oodatakse parsitavaks, kuid ühtegi 4,00 faili pole koodiga läbi loetud, ja RINEX 4 navigatsioonifailidest keeldutakse.

  • --validate ütleb, millal „ok“ tähendab, et polnud midagi kontrollida. Umbes kaks kolmandikku kataloogist ei avalda ühtki kohustuslikku välja — need paketid käitavad oma etalonkonfiguratsiooni tühjast kehast — nii et lint võis neile trükkida ainult „ok“, samade sõnadega, mida kasutas pärast kuue välja kontrollimist. Õnnestumise rida ütleb nüüd, mitu kohustuslikku välja leiti olemasolevana, või et liik ei nõua ühtegi.

  • scripts/gate.sh keeldub mittenumbrilisest REPEAT või TEST_THREADS. Bash-i 3,2 all põhjustas REPEAT=no arvuvõrdluse vea ja hindamise väärana, nii et värav teatas „repeatability loop SKIPPED (REPEAT=0)“ väärtuse kohta, mis polnud 0, ja kirjutas siiski kviitungi. Mõlemad nupud väljuvad nüüd koodiga 2, kui need pole lihtsad täisarvud.

  • MSRV on öeldud väärtusena 1,85 kõikjal, kus inimene seda loeb. Cargo.toml liikus eelmisel väljalaskel väärtusele 1,85; README märk, paigaldus- ja tõrkeotsingu tekst, codemeta.json ning MCP kasti enda põhjendus ütlesid endiselt 1,75.

  • Pythoni sidumise RunOutput.__repr__ teatab baite, mitte „chars“. See trükkis UTF-8 stringide len(), mis on baitide arv: 710 „chars“ 708 märgi pikkuse tabeli kohta.

  • README ei dokumenteeri enam koos --study --study-name. --study-name on ühe stsenaariumi lipp, mida ignoreeritakse koos --study (binaar hoiatab). Kaks kopeeri-kleebi näidet failides README.md ja README.crates.md näitavad nüüd uuringukäsku üksi.

  • Saidi kella stabiilsuse tõend ütleb välja mõlemad jälgitud tolerantsid. 5071A tseesiumi rida reprodutseeritakse täpsusega ≤ 3e-5 ja PHASE.DAT täpsusega ≤ 5e-5; lõik andis mõlema jaoks 3e-5.

  • Kaks mootori väljundfaili ei ole enam jälgitud. scenarios/quantum-pnt-demonstrator.study.{json,html} templiti mootor 0.20.0 iga näitaja tühjaga ja README enda uuringukäsk kirjutas need üle, määrides puu ja blokeerides push-värava. *.study.json / *.study.html ignoreeritakse nüüd nagu teisi nelja mootori väljundit.

  • Algväärtuse pühkimine mänguväljakul ei ebaõnnestu enam iga jooksutuse korral. Pühkimine astus täisarvulist nuppu seed lineaarselt (1, 10,9, 20,8, …) ja mootor, lugedes seda tüübina u64, lükkas iga murdväärtuse tagasi. Täisarvulised nupud pühivad nüüd selgeid täisarve.

  • Iga mänguväljaku allalaadimine ütleb, milline mootor ja milline sisend selle tegi. Mõned liigid (nt realtime-frame-eop) ei väljasta engine_version ega scenario_hash, nii et nende allalaadimised nimetati lihtsalt kshana-csv.csv. Nimi langeb nüüd tagasi laaditud mootori versioonile ja stsenaariumi teksti 12-kohalisele hex FNV-1a-64 sõrmejäljele.

Muudetud#

  • Avaldatud crate on vähem kui pool oma varasemast suurusest ja cargo install kshana ehitab ainult käsurealiidese. Pakett sisaldas varem artikleid, nende esitamispakette, artiklijooniste artefakte, märkmikke, docs/, hooldajate skripte ja näiteprogramme. Ühtki neist ei kompileeri teek ega käsurealiides. See sisaldas ka kolme sisemist generaatorit kataloogis src/bin/ (crossover_study, gen_validation_artifacts, validation_report), nii et registripaigaldus kompileeris ja paigaldas neli käivitusfaili, millest kolm olid kasulikud ainult tõmmise sees. Need puud ja kolm generaatori lähtefaili on nüüd välja jäetud. Cargo loetleb paketi binaarid selle sisalduvatest failidest, nii et avaldatud manifest nimetab ainult kshana. Kloonis leitakse generaatorid endiselt automaatselt, nii et cargo run --bin <name> ja väljalasketöö, mis käitab validation_report, on muutumatud. Mõõdetud käsuga cargo package: 763 faili, 16,7 MiB, 6,8 MiB tihendatult enne; 591 faili, 10,5 MiB, 3,0 MiB tihendatult pärast. Selle kontrollehitus, mis kompileerib ainult pakendatud failid, läbib. cargo install --path pakendatud craty peal paigaldas ühe käivitusfaili, kshana.

  • Väljund, mida ajastusinsener saab lugeda: enam pole p95 0.0ns, enam pole security 0.000 ilma rünnakuta ja saidiarvud ühtivad README-dega. See on kuvaparandus. Ükski avaldatud arv ei muutu; JSON väärtused on identsed, mida ülal olevad golden-räsid tõestavad.

    • Ühe rea kokkuvõte trükkis optilise kella 95. protsentiili (p95) ajavea kujul 0.0ns, samal ajal kui selle kõrval olev tabel näitas 1.20e-4 ns. Nullist erinev ajastusarv, mis on ühe kümnendkoha jaoks liiga väike, trükitakse nüüd kolme tüvenumbriga (p95 1.20e-4ns); täpne null trükitakse endiselt kujul 0.0. HTML (HyperText Markup Language) aruanne, uuringu võrdlustabel ja mänguväljaku allalaaditav aruanne kasutavad sama reeglit, nii et ükski nullist erinev arv ei trüki ka kujul 0.000.
    • security on analüütiline spuufimise tuvastatavuse piir, mis tähendab midagi ainult seadistatud rünnaku vastu. Liigid clock, orbit, hybrid ja fusion ei seadista ühtki, nii et nende kokkuvõte trükib nüüd security n/a (no attack) numbri nagu 0.000 asemel, mis loeb nagu ebaõnnestunud tuvastus. Väärtus jääb faili fom.security, märgitud applicable: false ja põhjus failis figure_tiers, ning aruandetabelid näitavad „not applicable“. Stsenaariumi spoof-id hindab tuvastamist endiselt.
    • Kaks kokkuvõtte kinnitust failis tests/registry_golden.rs liikusid just nendel kahel põhjusel ja mitte ühelgi teisel: golden_clock (kvant-p95 ja mõlemad väärtused security) ja golden_orbit (mõlemad väärtused security; selle p95 väärtused on täpselt null). Nende kogu dokumendi räsid ei liikunud. README, kolme õpetuse ja nende õppestsenaariumide oodatud kokkuvõtted on vastavalt uuendatud ja tests/tutorials.rs kontrollib õppekoopiaid mootori vastu.
    • Mänguväljaku juhendatud tutvustus ei avane enam esmasel laadimisel. Selle modaal püüdis esimesed klõpsud ja selle esiletõst kerias lehe külastaja maandumiskohast eemale. See algab nupust „Take the 60-second tour“ või ujuvast nupust Tour.
    • Leht ei keri enam telefonis külgsuunas. Kell 390 px läks kaubamärgirida ja GitHubi nupp umbes 410 px sisuks, 4 px ületäitumine; päis mahub nüüd alates 320 px ja näitajate tabel keritakse oma kasti sees, mitte ei laienda lehte.
    • Võimekuse uurija juhtis oma kaartide arvuga („46 capability cards … 17 backed by an external oracle“) README-de kõrval, mis ütlevad 64 168-st. Nüüd juhib see kontrollimaatriksiga, loetuna genereeritud failist web/data/verification-matrix.json (sama maatriks, millele README arvud on kinnitatud), ja nimetab kaardid seejärel kokkuvõttekihina, mis need on. web/counts.test.mjs, uus samm pideva integratsiooni (CI) töövoos, kontrollib aritmeetikat ning ristkontrollib faili README.md ja lehe kirjeldusi; tests/web_validation_counts_doc_sync.rs kinnitab ühenduse Rust-i poolelt.
  • Avalik kirjeldus juhib nüüd ajastuse ja holdover'iga, kõige paremini valideeritud valdkonnaga. README avang ja docs/POSITIONING.md esitavad Kshanat avatud, reprodutseeritava, päritolu märgistava PNT vastupidavuse tõendimootorina: kriitilise taristu ajastus ja holdover esimesena (Alani, modifitseeritud Alani, ajahälbe ja maksimaalse ajaintervalli vea hindajad ning holdover'i rannikuvariatsiooni pöördamine on selle taga olevad VALIDATED read), kvant kui neutraalne kvant-versus-klassikaline kompromissi meetod, mille tulemused on märgitud MODELLED, ning Kuu / tsislunaarne (Maa–Kuu ruum) ja kaugkosmose navigatsioon hooldatavate võimekustena, mitte pealkirjana. Mõlemad lehed ütlevad nüüd, mis Kshana ei ole — mitte raadiosageduslik signaalisimulaator ega riistvara-ahelas rig, mitte MATLAB/Simulinki, STK ega Orekiti asendaja — ja osutavad uuele stsenaariumi liigile telecom-timing ja failile docs/TELECOM-TIMING.md. Vana rida „there is no good open tool“ on kadunud: otsing, mis midagi ei leia, ei ole tõend, et midagi pole olemas. ROADMAP.md saab dateerimata prioriteetide järjekorra (ajastus esimesena, kvantkompromiss teisena, Kuu hooldatav) ja loobub kolmest aegunud punktist (Coriolise ja valgusnihke süstemaatilised vead, NRHO algtingimused ja Kuu stsenaarium, kõik tarnitud); README rida „Coriolis and light-shift remain roadmap“ on parandatud samamoodi.

  • docs/CAPABILITY.md lõpetas alahindamise. Maaga seotud tugisüsteemide rida ütles „none“, samal ajal kui maatriks hindab GCRS→ITRS VALIDATED; see on nüüd „full“ ja põhitugisüsteemide rida kirjendab ANISE ristkontrolli tarnituks. Juhendatud režiim oli loetletud teekaardil; mänguväljak on tarninud juhendatud liugurid ja juhendatud tutvustuse. Pühkimine faili src/verification.rs vastu parandas veel viis rida, mis eelnesid oma valideerimistele: Cowelli jõumudel ning partii- ja järjestikune orbiidi määramine Orekit 12,2 vastu, jaamaläbimised Orekiti kõrgusnurga detektori vastu, täpsuse halvenemise teguri tuum gnss_lib_py vastu ja OEM import sõltumatu parseri oem vastu; kontrolli ja valideerimise rida nimetab nüüd valvureid, mis kontrollivad, et iga tsiteeritud test on olemas.

  • Sõnastik selgitab, mida tulemusfail ütleb. docs/GLOSSARY.md saab lihtkeelsed kirjed väljundterminite jaoks (holdover, p95, terviklikkus, turvaskoor, PDOP, sigma_y, q_wf), telekommunikatsiooni ajastusterminite jaoks (ajaviga, max|TE|, cTE, dTE, MTIE, TDEV, PRTC, ePRTC, T-BC, T-TSC, OCXO, CSAC) ja kolme tõendustaseme jaoks (VALIDATED, MODELLED, PARTNER).

  • Lühendid on lahti kirjutatud esimesel kasutamisel igas käsitsi kirjutatud avalikus dokumendis. README-l ja 24 failil kataloogis docs/ oli mitusada lühendit kasutatud enne oma lahtikirjutust või ilma selleta; igaüks on nüüd lahti kirjutatud seal, kus see selles failis esimest korda esineb. Kolm genereeritud faili (docs/VERIFICATION-MATRIX.md, docs/MODELLED-RATIONALE.md, docs/SCENARIOS.md) jäetakse rahule: need kirjutatakse failidest src/verification.rs ja api::list_scenario_kinds(), nii et nende sõnastus tuleb muuta allikas.

  • Ridade katvusel on ametlik mõõtmine. docs/COVERAGE.md kirjendab 95,63 % (37 697 rida 39 419-st) CI töölt coverage commit'il b1d350d ja tests/coverage_figure_doc_sync.rs kinnitab viis avalikku pinda „~96%“ selle külge — ainus pealkirjaarv, mida hoiti käsitsi ja mis oli juba kord märkamatult liikunud.

  • Uued dokumendi sünkroonimise väravad pindadele, mida miski ei lugenud. tests/readme_code_fences_doc_sync.rs kontrollib iga import { … } from "kshana" JavaScripti plokis WebAssembly ekspordi vastu ja kinnitab README.crates.md Rust-i näite bait-baidilt koopiale, mille testi binaar kompileerib. tests/security_md_doc_sync.rs ebaõnnestub, kui src/lib.rs kaotab #![forbid(unsafe_code)] või SECURITY.md lõpetab selle väitmise. tests/no_overclaims.rs skannib nüüd ka faili web/README.md ja kolme registri README-d ning iga saidil olev standard peab oma proof selgelt ütlema.

  • Kaks päris riistvara kellakontrolli jooksevad runneril. realdata-clock.yml (kuuti ja käsul) toob 5071A ja PHASE.DAT read ning käitab mõlemad testid seadega KSHANA_REQUIRE_REALDATA=1, nii et puuduv sisend ebaõnnestub, mitte ei jäeta vahele. Mõlemad toomisskriptid on kinnitatud ühele allantools commit'ile ja kontrollivad SHA-256.

  • Pythoni tüübitükk kontrollitakse ehitatud wheel'i vastu (mypy.stubtest sidumiste töös), mille tõttu csv/write_csv tarniti tükita.

  • Sõnastik defineerib URE, EOP, FoM, CTI ja TIB, mida README ja register (ledger) kasutasid paljalt.

  • Iga liigi avaldatud väljalepe on nüüd tõene ja test hoiab seda seal. Viis 61 liigist muutus. Liigid, millel on mittetühi required_fields, lähevad 21-lt 22-le: ephemeris nõuab nüüd tle|orbit+epoch (paljas kind = "ephemeris" läbis varem --validate ja ebaõnnestus siis jooksutuses) ning quantum-trade lisab candidate_adev_taus+candidate_adev_values|candidate_clock_class, mida selle jooksutus juba nõudis. Nõutav kirje võib kasutada | (üks neist) ja + (kõik need koos); --validate mõistab mõlemat. lunar-joint-od-clock, pvt ja earth-gnss-lunar avaldavad 9 tõelist valikulist välja, mille nad olid välja jätnud. docs/SCENARIOS.md ütleb nüüd, et kind on nõutav iga liigi puhul peale clock. tests/required_fields_are_true.rs kontrollib iga liiki selle tarnitud stsenaariumi vastu: iga nõutava kirje eemaldamine peab põhjustama jooksutuse ebaõnnestumise ja dokument, mis sisaldab ainult nõutavaid välju, peab jooksma.

  • JetBrains Marketplace'i märkmed on värava taga. scripts/check-version-sync.sh ebaõnnestub nüüd, kui faili plugin.xml uusim kirje <change-notes> ei nimeta tarnitavat versiooni; seitse avaldatud versiooni olid serveerinud märkmeid 0.22.0 muutmata kujul.

  • Tehnilise aruande katvuse arv on mõõdetud arv. paper/kshana-technical-report.md ütles „near 97 %“; nüüd ütleb see near 96 % (95,63 % mõõdetud, docs/COVERAGE.md) ja on kuues pind, mida katvuse test kinnitab.

  • Põhilõimest väljas oleva mootorikliendi testitakse (web/engine.test.mjs, CI-s): saatmise lubatud loend, tühistamine ja taaskäivitamine, kolm põhilõime varuteed ja krahhist taastumine, võltsworkeri vastu.

  • Midagi ei avaldata, enne kui sildistatud commit on oma testid läbinud, ja väljalase ei ole valmis, enne kui iga register seda serveerib. Järjekord on nüüd silt, kontroll, avaldamine, pariteet, sait, ühes jooksutuses failist release.yml (docs/RELEASING.md).

    • Avaldamine ootab otsust. publish.yml, mcp-publish.yml ja jetbrains-plugin.yml ei käivitu enam sildi push'ist; release.yml kutsub neid töödest, millel on needs: verify. Varem võistlesid need sellega: versioonil v0.27.2 olid crates.io, npm ja Python Package Index (PyPI) kõik avaldanud 4,5 minuti jooksul sildist ja verify tagastas 84 minutit pärast seda; versioonil v0.27.0 avaldasid npm ja PyPI, samal ajal kui crates.io töö ebaõnnestus. Käsitsi kordust sildil hoiab tagasi uus scripts/check-release-verdict.sh, mis nõuab rohelist verify täpselt selle commit'i jaoks Actionsi liidesest ja ebaõnnestub suletuna kõige muu korral.
    • Kõik ehitatakse enne, kui midagi üles laaditakse, ning crates.io, mille pakendamise samm oli see, mis väljalaske keskel ebaõnnestus, avaldab esimesena.
    • Puuduv registri märk ebaõnnestub töö, selle asemel et laadimine vahele jätta ja edu teatada.
    • Pariteedi kontroll pärast avaldamist. scripts/check_channel_parity.py pärib crates.io-d (kshana ja kshana-mcp), npm-i, PyPI-d (lähtekoodi levitus ja kõik kuus platvormi wheel'i) ja ghcr.io-d, kuni iga neist serveerib versiooni, või ebaõnnestub jooksutuses; docs.rs ja Model Context Protocoli (MCP) register on teatatud, mitte nõutud. Varasemate väljalaskete vastu käitatuna leiab see, et npm-ist ja PyPI-st puudub 0.22.0, PyPI-st 0.23.0 ja crates.io-st 0.27.0.
    • Eelehitatud käsurealiidese binaarid macOS-ile (Apple silicon ja Intel) ja Windows x86-64-le, nimetatud sihtmärgi järgi (kshana-aarch64-apple-darwin ja nii edasi), Linuxi kshana kõrval, mille nimi on muutumatu. Fail SHA256SUMS katab iga vara ning verify-release kontrollib seda ja käitab macOS-i ja Windowsi binaare nende endi süsteemides.
    • kshana.dev näitab väljalaset, mitte haru main. Varem juurutati see uuesti iga push'i peale harusse main, samal ajal kui selle lehed nimetasid viimast väljalaset. pages.yml ehitab nüüd ainult väljalaskesilti: väljalase käivitab selle üks kord, kui iga kanal serveerib versiooni, ja käsitsi käivitamine juurutab uuesti viimase väljalaske (või nimetatud ühe).
    • Üks wheel'ide allikas. Faili publish.yml käsitsi kopeeritud kuuesihtmärgiline maatriks on kadunud; see kutsub faili wheels.yml, nii et auditwheel sildi värav ja bait-baidilt reprodutseeritavuse kontroll hindavad nüüd wheel'e, mida PyPI saab, ning kummagi ebaõnnestumine peatab väljalaske.
    • Kinnitatud ehitustööriistad. Iga töövoog nõuab Rust-i 1.93.0 (töö msrv oma versiooni); publish.yml ja pages.yml olid nõudnud @stable, ning versiooni v0.27.2 logi näitab rustupi paigaldamas 1.98.1 ja seejärel kompileerimas versiooniga 1.93.0 ainult sellepärast, et rust-toolchain.toml on sellest ülimuslik. wasm-pack on kinnitatud versioonile 0.13.1 (versioon, mis ehitas v0.27.2, mille valis kinnitamata paigaldusskript) kontrollsumma kontrolliga ja mcp-publisher versioonile 1.8.1 oma avaldatud SHA-256-ga. scripts/check-toolchain.sh ebaõnnestub nüüd, kui töövoog küsib teist kompilaatorit või suunab allalaaditud skripti shelli. Ühtegi kontrollitööd, golden-kinnitust ega kohalikku värava skripti ei eemaldatud ega lõdvendatud.

Turvalisus#

  • Iga kolmanda osapoole GitHub Action on kinnitatud commit'i SHA-ga — 93 viidet 15 töövoos, neist 92 uut — sildiga, mis jäetakse lõppkommentaarina Dependabotile uuendamiseks. Erand on dtolnay/rust-toolchain, mille silt on tööriistaahela valija.

  • MCP serveri kujutise baaskihid on kinnitatud multi-arch räsiga ja Dependabot jälgib nüüd stsenaariumi mcp/kshana-mcp Dockerfile'i, nii et OS kihid saavad endiselt turvauuendusi — läbi ülevaadatud PR-i.

  • Sildi ja manifesti kontroll jookseb kahes avaldamise töövoos, mis tarnivad sildi versiooni. mcp-publish.yml (ghcr kujutis, MCP register) ja jetbrains-plugin.yml (Marketplace) võistlevad failiga publish.yml, mitte ei oota seda, nii et valesti lõigatud silt oli värava taga ainult õdetöövoos. Mõlemad käitavad nüüd enne ehitamist scripts/check-version-sync.sh.

  • Neli nõuannet, mille Dependabot tõstatas päeval, mil selle hoiatused sisse lülitati, on parandatud. MCP server liigub teegilt rmcp 1,7 väärtusele 2,2: kolm nõuannet teegi rmcp < 2,1 vastu (Streamable-HTTP seansitabeli leke, puuduv OAuth kaitstud ressursi valideerimine, kohandatud päised, mis järgivad ristpäritolu ümbersuunamist) — ükski pole siin ligipääsetav, kuna server räägib ainult stdio-d, kuid avaldatud crate ei tohiks kinnitada haavatavat SDK-d. Teegi rmcp 2 makrod vajavad Rust-i 1,88, nii et ainult kshana-mcp deklareerib nüüd rust-version = "1.88"; teek kshana jääb versioonile 1,85. Ainus API muudatus (Content → ContentBlock) on rakendatud ja edasi-tagasi testid läbivad. SonarQube'i skannimise action liigub versioonilt v5 versioonile v6, mis parandab argumendisüsti nõuande (≥ 4,0, < 6,0).

0.27.2 - 2026-09-22#

Lisatud#

  • Iga Rust-i üksus, mida kontrollimaatriksi rida tsiteerib, lahendatakse nüüd kasti vastu. Olemasolev valvur kontrollis failiteedena kujundatud viiteid; 63 164 mitte-partneri reast nimetavad oma tõendi hoopis kastisisese üksusena — navsignal::code_tests, integrity::tpl_scalar::tests, api::tests::tracking_loop_kind_round_trips_through_the_dispatch — ja märk ilma järelliiteta .rs oli teedeskanneri jaoks nähtamatu. Need read oleksid võinud nimetada ümber nimetatud moodulit, tühjendatud testimoodulit või funktsiooni, mida polnud kunagi olemas, ning iga värav oleks jäänud roheliseks.

    tests/verification_rows_name_a_test_that_exists.rs lahendab kõik 339 sellist viidet mooduli puu kaudu, nõuab, et iga mitte-partneri rida nimetaks vähemalt ühe testi, mis tegelikult kannab #[test], ja nõuab, et partneri read ei nimetaks ühtegi. Selle hindamiseks kasutati nelja mutatsiooni: viidatud mooduli ümbernimetamine, rea ainsa testiviite suunamine mitte-testfunktsioonile, tegeliku mod tests ümbernimetamine ja selle atribuutide #[test] eemaldamine — igaüks läheb punaseks väitel, mis seda omab.

    Üks rida oli juba vale: Alternative / complementary PNT tsiteeris tests/*, mis on glob, mitte viide. See nimetab nüüd tests/alternative_complementary_pnt_reference.rs ja kolme selle taga olevat kastisisest testimoodulit.

  • Avaldatud jooniseid kontrollitakse igas ehituses mootori vastu uuesti (tests/published_figures_still_reproduce.rs). Kolm README demodiagrammi on mootori enda väljund chart.svg ja miski ei jooksutanud stsenaariumi uuesti; paberi kaks ristumisuuringut genereeriti üks kord ja kinnitati; ning README ütleb proosas neli näitajat faili scenario-fom.png kõrval. Kõik kolm on nüüd kinnitatud elava mootori väljundi külge.

    Nende ühitamine tõi esile kasuliku tulemuse: demodiagrammid olid joonistatud mootoriga 0.22.0 ja paberi ristumise JSON mootoriga 0.20.0 ning versioonil 0.27.1 on iga joonistatud väärtus kõigis viies artefaktis identne — kolm diagrammi-SVG erinevad värskest jooksutusest täpselt kahe märgi võrra igaüks, versioonitempli võrra jaluses. Diagrammid on uuesti renderdatud, et jalus oleks tõene. Paberi JSON jäetakse tahtlikult templitud kujule 0.20.0: see on jooksutuse kirje, mille joonist avaldatud paber manustab, ja uuesti templimine väidaks päritolu, mida PDF-il pole. Valvur väidab selle asemel tugevamat omadust — et praegune mootor reprodutseerib endiselt iga avaldatud väärtuse.

Parandatud#

  • SonarCloudi analüüsid kirjendati kujul VERSION=not provided, nii et uue koodi periood previous_version ei edenenud kunagi: see oli endiselt ankurdatud 2026-07-02 analüüsile, hinnates kaheksakümmend kaks päeva tööd ühe deltana ja mõõtes 7877 „uut“ dubleeritud rida 3 % läve vastu. Skannimine annab nüüd edasi kasti versiooni. Aluseks olev dubleerimine on päris ja seda ei peideta: see on koondunud deklaratiivsetesse registritesse FieldUnit, mis kordub failides ensemble, hybrid, fusion, inertial ja report, ning 168-realisse kontrollitabelisse ning see on siin nimetatud tööna, mitte mõõtmisest välja jäetud.

  • Failil scripts/gate.sh polnud ühekirjutajalukku ja iga jooksutus kirjutas sama logi. See ei ole korrastamise küsimus: kviitungi integration_binaries, tests_passed ja tests_ignored loetakse sellest logist TAGASI ja push-eelne konks usaldab kviitungit. Värav, mis tapeti, kuid mille testibinaar oli veel elus, kirjutas jätkuvalt faili, mille järgmine jooksutus oli just kärpinud — nii et ühe jooksutuse arvud oleks võinud olla tõestatud teise jooksutuse omadena, lubades push'i komplekti alusel, mis ei jooksnud kunagi push'itaval puul. Nüüd on üks värav iga checkout'i kohta (keeldudes väljumiskoodiga 75 elava kõrval, kustutades aegunud luku, mille pid on kadunud) ja üks logi jooksutuse kohta, faili target/gate-run.log värskendatakse lõpetava jooksutuse põhjal väljumisel. Mõlemat suunda testitakse: elav pid keeldub, surnud kustutatakse.

  • src/verification.rs väitis, et selle testid „do not prove the named test/oracle strings resolve to live code“. Kaks valvurit teevad nüüd täpselt seda, nii et mooduli dokument ütles tõe vastupidist; see ütleb nüüd, mis on masinkontrollitud ja mis on jäetud inimese otsustada. Aegunud viide verification::gen — moodul on artifacts — on parandatud õdevalvuri enda dokumentatsioonis.

Muudetud#

  • main kirjutati ümber 2026-09-22 ja force-push'iti. Kümnest commit'ist sai neli. Ümberkirjutus voltis iga commit'i, mis jättis värava punaseks, commit'i sisse, mis selle puhastas, nii et igal commit'il harus main on nüüd puu, mis läbib, ning eemaldas tühistatud jooksutused, mida harude ülene paralleelsusrühm oli jätnud igale asendatud commit'ile.

    Midagi ei visatud ära. Ümberkirjutuse-eelsed commit'id jäävad kättesaadavaks siltide kaudu, mis neile osutavad, ja lõplik puu on bait-baidilt identne puuga, millest ümberkirjutus algas — git diff vana tipu ja uue vahel on tühi, välja arvatud kolm töövoofaili, mida see väljalase muudab.

    Asendatud SHA-d neile, kellel on neile viide:

    vana teema
    9733177 docs(changelog): disclose the authorship rewrite and the two dangling crate sha1s
    5d16ea8 fix(docs): the engine-flow diagram said 6 figures of merit; the engine scores 7
    148d31d fix(test): two more cross-platform pins, and two wrong assumptions of my own
    a3a2667 feat(web): surface the lunar cluster on the site — seven capability cards
    1e8bec6 docs(lunar): document 42 public fields and ratchet the ceiling down to 985
    7bba514 chore(release): v0.27.0
    3154548 test(docs): guard the distribution diagram, the last unguarded one
    7864142 chore(release): v0.27.1

    Silte v0.27.0 ja v0.27.1 TAHTLIKULT EI liigutatud. Need osutavad endiselt commit'idele 7bba514 ja 7864142, täpsetele commit'idele, mille puud tootsid artefaktid, mis on nüüd elus crates.io-s, npm-is, PyPI-s, ghcr.io-s ja MCP registris. Crate'i .cargo_vcs_info.json kirjendab sha1, millest see pakendati, registrid on muutumatud ja SLSA ehituse päritoluatesteering väljalaske v0.27.1 varadel on seotud selle commit'iga. Siltide liigutamine oleks jätnud iga neist avaldatud artefaktidest osutama commit'ile, mida enam pole. Nende jätmine hoiab vanad commit'id kättesaadavad ja iga avaldatud päritoluahela lahenduvana, hinnaga kaks silti, mis ei ole enam haru main esivanemad — mistõttu see väljalase on olemas: v0.27.2 annab harule main oma sildi, pakendatud commit'ist, mis on sellel.

    See on selle ajaloo teine avalikustatud ümberkirjutus; esimene, 2026-09-21, kanoniseeris autorluse ja on kirjendatud märgetes 0.27.0 oma kahe rippuva crate'i sha1-ga. Ümberkirjutus avalikustatakse siin iga kord, sest hoidla, mis müüb kontrollitavat päritolu, ei saa vaikselt avaldatud artefakti alt maad liigutada.

0.27.1 - 2026-09-22#

Parandatud#

  • Avaldatud crate ei kompileerunud. src/lunar_orientation.rs sisaldab ülemisel tasemel include_str! faili tests/fixtures/llr_geometry/de440_moon_pa.csv ja manifest jätab /tests/fixtures paketist välja, nii et tarball, mille crates.io saab, ei sisaldanud faili, mille teek ise manustab. Avaldamine v0.27.0 ebaõnnestus selle tõttu oma kontrollehituses ja ükski 0.27.0 ei jõudnud crates.io-sse; npm ja PyPI, mille tööd sellest ei sõltu, avaldasid normaalselt. Väljajätt kannab nüüd erandit selle ühe kataloogi jaoks.

    Iga teine fikstuuri include_str! kataloogis src/ asub mooduli #[cfg(test)] sees ega jõua seetõttu pakendatud teeki. Ainult ülemise taseme oma jõuab.

  • Miski CI-s ei käitanud käsku cargo package, mistõttu tarball, mis ei saa kompileeruda, avastati esmalt avaldamise töös, pärast seda, kui kaks muud registrit olid juba tarninud. Töö package ehitab ja kompileerib nüüd täpse tarballi igal push'il.

Muudetud#

  • Kuu tugisüsteemi realisatsiooni emissiooni kinnitused ei liigu enam versiooni tõstmisel. SVG jalus kannab mootori versiooni, nii et iga väljalase baseeris uuesti kolm räsi — kaks korda ühes päevas — ja rutiiniga uuesti võetud kinnitust ei loeta enam. Versioonistring normaliseeritakse enne räsimist kohatäiteks ja emissiooni väidetakse eraldi öeldavat jooksvat versiooni, nii et seda fakti kontrollitakse täpsemalt kui räsi seda kunagi kontrollis.

0.27.0 - 2026-09-22#

Lisatud#

  • lunar-llr-datum — Kuu tugisüsteemi andmepunkt päris vaatluskampaaniast. lunar-frame-campaign asendas süstitud Helmerti teisenduse simuleeritud kampaaniaga ja ütles seda: selle jaamavõrk, ajakava ja vaatluskohane sigma on illustratiivsed sisendid. See stsenaarium eemaldab simulatsiooni kahest kohast, kus ajakava ja veamudel vastusse sisenevad. Epohhid on 337 arhiveeritud ILRS Kuu laservahemõõtmise normaalpunkti saatmisajad (2015-04-08 .. 2015-06-27, Grasse MeO 7845 ja Matera MLRO 7941, kõik viis retroreflektorite massiivi) ja iga vaatluse kaal on selle normaalpunkti enda arhiveeritud täpsus, bin_rms / sqrt(n_raw) — 5,13 mm ühesuunalise vahemaa mediaan, failist välja võetud, mitte siin valitud. Jaamade koordinaadid pärinevad IERS ITRF2020-st ja reflektorite koordinaadid JPL DE430 tabelist 7; iga fikstuur kirjendab URL-i, hankimiskuupäeva ja SHA-256 ning genereeritakse uuesti oma allikast kinnitatud generaatoriga, mis kontrollib allikat ja katkestab, mitte ei väljasta arvu. Aruanne nimetab, millised lingid on mõõdetud ja millised jäävad modelleeritud, ning modelleeritud on mõõdetud: vaadeldud-miinus-arvutatud ühesuunaline vahemaa päris andmete peal on 156 494 m RMS, mida sama testikomplekt kinnitab JPL Horizonsi vastu sama vahemiku jooksul (195 655 m RMS vektor, halvim epohh 0,054° — sisseehitatud analüütilise Kuu jada enda väidetud ~0,3° piires). Lisanduv: uus liik, uus lugeja (realdata::llr_crd) ja uus moodul (lunar_llr); olemasolevad Kuu tugisüsteemi paketid on bitt-bitilt kinnitatud.

  • sigma_ure_m stsenaariumi parameetrina stsenaariumitel lunar-integrity ja moonlight-service-volume. Kosmosesignaali ulatuse täpsus oli kompileerimisaja konstant (LUNAR_SIGMA_URE_M), nii et teenindusmahu pühkimine võis vastata ainult läbimisele/ebaõnnestumisele ühel fikseeritud väärtusel. Kaitsetasemed on selles täpselt lineaarsed, seega muudab selle avamine pühkimise ulatuse täpsuse nõudeks kogu mahu kohal. Vaikeväärtus reprodutseerib varasema käitumise bitt-bitilt.

  • Satelliidipõhise geomeetria eksport stsenaariumil moonlight-service-volume: export_site_lat_deg + export_site_lon_deg lisavad massiivi per_sat_geometry, mis annab asimuudi, kõrguse ja kaldulatuse igale satelliidile igal epohhil ühe nimetatud selenograafilise koha jaoks, pluss nähtavuslipu. Koondkatvuse kokkuvõte tahtlikult kaotab satelliidipõhise geomeetria, kuid kaldulatus on täpselt see, mida lingieelarve tarbib, nii et ühist side- ja navigatsioonianalüüsi ei saanud kokkuvõttest üksi teha. Väljas, kui mõlemad koordinaadid pole antud; puhtalt lisanduv.

  • lunar_service::topocentric, avalik vaatenurga abiline ekspordi taga.

  • Kontrollimaatriksi rida uue geomeetriavõimekuse jaoks.

  • Päris antennimuster geomeetria ekspordis. Mootor on kandnud ühtlaselt valgustatud ringava mustrit alates P1-st (antenna::pattern_gain_dbi, Airy kuju [2·J₁(x)/x]²) ja miski väljaspool faili antenna.rs ei kasutanud seda — töö tegi selle asemel peasuuna võimendus koos võimenduse ja kiirelaiuse pöidlareegliga. Valikuline tabel export_antenna stsenaariumil moonlight-service-volume (loetud ainult siis, kui ekspordikoht on seatud) annab nüüd igale eksporditud reale peasuunast kõrvalekalde nurga satelliidil ja saatmisvõimenduse saidi suunas sellest mustrist ning lisab ploki antenna_pattern, mis teatab kiires olevate arvu päris mustri korral sümmeetrilise lähenduse kõrval (θ₃dB[deg] = √(31000/G_lin)) erinevusega nimetatud parandusena. Mõlemad arvud väljastatakse; kumbki ei asenda teist. Mõõdetuna mootori enda esindava Kuu ava juures (1 m taldrik, 2,4 GHz, η = 0,60) lõunapolaarse koha ja illustratiivse LCNS-klassi kihi kohal lähevad kaks lahku rohkem kui ühe satelliidi võrra: päris muster paneb 0 76 nähtavast lingist poolvõimsuskiire sisse, lähendus väidab 28 — parandus −2,33 satelliiti epohhi kohta, halvim üksik epohh 3. Lähendus kannab oma ava efektiivsust (0,641 võrreldes reegliga 70·λ/D kraadi, millega seda tavaliselt tsiteeritakse, 0,920 ühtlase ringava vastu), nii et η = 0,60 taldriku korral annab see kiire, mis on 1,238× liiga lai; plokk väljastab mõlemad kaudsed efektiivsused, mitte ei jäta neid järeldada. Puhtalt lisanduv: mõõdetuna dokumenteeritud tööpunkti kohal, 597 eelnevalt olemasolevat lehte, 0 muudetud, 0 eemaldatud, 494 lisatud.

  • antenna::symmetric_beamwidth_rad, antenna::symmetric_relation_implied_efficiency, antenna::within_half_power_beam, antenna::HALF_POWER_DROP_DB, antenna::SYMMETRIC_GAIN_BEAMWIDTH_CONST_DEG2, antenna::UNIFORM_APERTURE_HPBW_COEFF ja lunar_service::nadir_off_boresight_rad, selle taga olevad avalikud osad. Muster on nüüd ankurdatud ka avaldatud Airy konstantide vastu, mitte ainult iseenda vastu: poolvõimsuse ületus leitakse poolitamisega ja võrreldakse väärtusega x = 1.61634, mis teeb täpse poolvõimsuslaiuse väärtuseks 1.02899·λ/D ja kirjendab ausalt, et tavapärane koefitsient 1.02 paneb funktsiooni pattern_gain_dbi väärtusele −2,955 dB, mitte −3,010 dB.

  • Pikk reprodutseeritavuse tabel stsenaariumile lunar-time-budget. Stsenaariumi massiiviväärtusega väljundid — keskmistamisaja võrk, seitse liikmepõhist kõverat x(τ) ja nende ruutude summa juur — jõudsid tarbijateni ainult JSON massiividena. Üks välja antud tabel kärbiti 400 märgi juures ja avaldas 23 oma 57 keskmistamisajast veeru all, mis väitis neid kõiki, ja käsikiri ehitas liikmepõhised kõverad kinnisvalemitest uuesti, sest mootor ei väljastanud neid kunagi. Tavaline jooksutus kirjutab nüüd ka faili <scenario>.table.csv ühe reaga (võrgu indeks, keskmistamisaeg, liige) kohta, mida ei saa kärpida millekski, mis näeb endiselt tervik välja. Võrgu indeks on täpne liitmisvõti; τ kirjutatakse 13 tüvenumbriga ja iga x 7-ga, nii et baidid ei hargne sama lähtekoodi ehituste vahel. Puhtalt lisanduv: aruande JSON on bait-baidilt identne.

  • Stsenaariumi hybrid-optical-rf aruanne kirjeldab nüüd ennast. Plokk link_configuration kordab lahendatud lingi sisendeid — kandelaine lainepikkus, saatja ja vastuvõtja ava, vahemaa, impulsi laius, integreerimisaeg, efektiivsused ja kaod — vaikeväärtused rakendatud, nii et artikkel ütleb konfiguratsiooni, millega see jooksis, mitte ei tsiteeri lähtekoodist loetud vaikeväärtust. Plokk units annab iga suuruse ühiku ja päritoluklassi, mida artikkel tõenäoliselt tsiteerib. Üleandmise kovariatsioonijäljed on põhjus, miks see on olemas: need väljastati paljana variance ja käsikiri järeldas ruutmeetreid sisemisest kooskõlakontrollist. Järeldus oli õige, mis on täpselt põhjus, miks see oli defekt — miski ei oleks tabanud, kui see oleks olnud vale. Puhtalt lisanduv: mõõdetuna nelja konfiguratsiooni kohal, 456 eelnevalt olemasolevat välja, 0 muudetud, 0 eemaldatud, 196 lisatud.

  • Kontrollimaatriksi rida ajaeelarve reprodutseeritavuse tabeli jaoks, ausalt InternalConsistency / MODELLED — kogusumma kontrollitakse samas failis olevate liikmete ruutude summa juure vastu, mis jagab mootori enda liikmemääratlusi ja ei ole seetõttu sõltumatu etalon. Koos lisavad need kolm rida. Selle väljalaskmata jaotise jooksev kogusumma on 168 rida — 64 VALIDATED, 100 MODELLED, 4 PARTNER.

Muudetud#

  • Commit'ide autorlus kogu ajaloos on nüüd üks identiteet ja kaks avaldatud crate'i osutavad commit'ile, mida enam pole. 2026-09-21 kirjutati git-ajalugu ümber nii, et iga inimese commit'i autor ja commit'ija on ashfordeOU <236818772+ashfordeOU@users.noreply.github.com>. Varem kandis see ühe isiku kolme kirjaviisi — 688 commit'i kujul ashfordeOU <contact@ashforde.org>, 34 kujul Chakshu Baweja <contact@ashforde.org> ja 94 juba kanooniline. Ainus dependabot[bot] commit jäeti tahtlikult oma autorile: roboti sõltuvuse tõstmise ümbersildistamine väidaks autorlust töö eest, mida siin keegi ei teinud.

    Sisu ei muutunud. Ümberkirjutus puudutas ainult autori ja commit'ija päiseid ning see on kontrollitav, mitte väidetav: iga sildi ja iga haru puu on bitt-bitilt identne sellega, mis see oli enne. v0.26.0 lahendub endiselt puuks 92284e9420605568f1bfabb78cd95d383b40f3e2, täpselt nagu varem.

    Mis see maksis. Commit'i nimi on räsi selle puust, vanematest ja autoripäistest, nii et esivanema muutmine nimetab ümber iga järeltulija. Väljalaske v0.26.0 commit oli dce2dbf7700788cf6de46260c14673c0e5347360 ja on nüüd d4921f3025569e00e425e1747d0acfc261e96e18. Kaks artefakti kirjendasid vana nime avaldamise ajal ja neid ei saa parandada, sest avaldatud registri versioon on kavandi poolest muutumatu:

    • kshana 0.26.0 crates.io-s — .cargo_vcs_info.json kirjendab dce2dbf…
    • kshana-mcp 0.26.0 crates.io-s — sama sha1, path_in_vcs: mcp/kshana-mcp

    Midagi muud see ei mõjuta. npm-i pakett ei kirjenda gitHead ja PyPI levitus ei kirjenda üldse commit'i; mõlemad kontrolliti, mitte ei eeldatud.

    Pole parandust, mis paneks dce2dbf… nimetama ümberkirjutatud commit'i: see string on vana esivanemate ahel ja ainus viis, kuidas see lahendub, on hoida ümberkirjutuse-eelne ajalugu avaldatuna, mis taastaks autorluse, mille ümberkirjutus eemaldas. Versiooni 0.26.0 päritolu kulgeb seetõttu sildi, mitte kirjendatud sha1 kaudu — ja silt annab identsed baidid, millest crate ehitati. Järgmine väljalase kirjendab kehtiva commit'i ilma täiendava tegevuseta.

Parandatud#

  • Stsenaariumi realtime-frame-eop vaikimisi EOP fail ei sisaldanud ennustusridu (G12). Stsenaarium manustas viierealise ainult lõplike väljavõtte finals2000A oma võrguühenduseta vaikeväärtusena, nii et paljas jooksutus teatas predicted_rows.n = 0 ja horisondipõhine tabel toetus 5, 4, 3 ja 2 paarile. Mootor võis alati ennustusrida lugeda — sisendil lihtsalt polnud ühtegi. Vaikeväärtus on nüüd sõna-sõnalt IERS 2026 väljavõte (tools/finals2000A_2026.txt, MJD 61173–61204): 20 Bulletin B lõplikku ja 12 Bulletin A ainult ennustusrida, nii et paljas jooksutus ilma failiargumendi ja võrguta teatab predicted_rows.n = 12 ja horisondipõhise tabeli väärtusel n = 20 / 31 / 30 / 29 ning operatiivse ennustaja võrdlus ja kokkulangevus toote enda avaldatud ennustustega täituvad samuti. Pika ulatusega 45-realist väljavõtet mõõdeti alternatiivina ja lükati tagasi: see on samuti ainult lõplik, nii et see oleks jätnud predicted_rows.n väärtusele 0. See muudab avaldatud arve, reegli R4 alusel ja asutaja loal: kümme 22 lahtrist välja antud failis p4_frame_eop.csv ja 24 42 täidetud lahtrist failis tests/golden/realtime-frame-eop.csv. Mõõdetud kiire-miinus-lõpliku poolusepõhi muutub väärtuseks 0,0678 mas (varasema 0,0769 mas asemel), mis on väärtus, mille paberi P4 enda poolusliikumise tabel juba avaldab väärtusel n = 20 — need ühtivad nüüd, mitte ei erine 13,5 % võrra. Iga teine arv, mille P4 sellest tabelist trükib, on trükitud täpsusega muutumatu. Täielik vana → uus loend, sealhulgas väljad, mis ei liikunud, on failis docs/revisions/G12-default-eop-cell-changes.md. Ainult lõplik väljavõte jääb tarnitud, bait-baidilt kinnitatud ja kasutatud: ennustusridade nullarv sellel on faili omadus ja test tõestab seda endiselt.

  • Aegunud satelliidipiirang failis moonlight-service-volume. Stsenaarium piiras väärtuse n_sats arvuni 12, kuigi selle enda konstellatsiooniehitaja toetab arvu 24 ja test kinnitab arvu 24; seetõttu vähendati iga taotletud arvu üle 12 vaikselt ja satelliidiarvu pühkimine andis üle 12 identsed väärtused, mida ei saanud eristada tõelisest geomeetrilisest küllastusest. Nüüd piiratakse ehitaja piirini. See on käitumismuudatus ainult juhul n_sats > 12.

  • Sama aegunud piirang failis lunar-differential-pnt. lunar_dpnt piiras väärtuse n_sats arvuni 12 sama tagajärjega ja see jõudis avaldatud tabelisse: dpnt_nsats_sweep.csv sisaldab rida n = 16, mis on baidi haaval identne reaga n = 12, sest mootor tagastas kaheteistkümne satelliidi vastuse kuueteistkümne satelliidi sildi all. Nüüd piiratakse ehitaja piirini 24 ja uus test fikseerib selle: iga suurem konstellatsioon peab teatama oma arvust ja kaitsetaset rangelt parandama, nii et piirang ei saa märkamatult tagasi tulla. See muudab avaldatud arve: kaitsetase n = 16 muutub 16,92 m → 14,57 m. Arvuni 24 pühitult on kõver rangelt monotoonne (11,94 m 24 satelliidi juures, 29,5 % parem kui 12 juures), seega 12 juures küllastust pole: näiline platoo oli piirang. Käitumismuudatus ainult juhul n_sats > 12.

0.26.0 - 2026-09-18#

Dokumentatsiooni, läbipaistvuse ja mänguväljaku väljalase. Mootori käitumine ei muutu: kontrollimaatriksis on 102 rida — 56 VALIDATED, 42 MODELLED, 4 PARTNER, muutumatu versioonist 0.25.0.

Lisatud#

  • Teegitaseme rustdoc (//! failis lib.rs), mis hõlmab sisenemispunkte, aususe/tasemete mudelit ja reprodutseeritavust, nii et docs.rs avaneb päris avalehena, mitte paljana moodulite seinana.
  • docs/SCENARIOS.md — liigipõhine teatmik kõigi 50 stsenaariumi liigi kohta, genereeritud funktsioonist api::list_scenario_kinds() (ainus tõeallikas) käsuga gen_validation_artifacts ja kaitstud testiga tests/scenarios_reference_doc_sync.rs, nii et see ei saa dispetšerist kõrvale triivida.
  • Moodulidokumentatsioon 11 varem dokumenteerimata avaliku mooduli jaoks (allan, estimator, fom, hybrid, inertial, models, report, run, scenario, timetransfer, types).
  • Kirjandusallikad viiele valemimoodulile, mis esitasid võrrandi, kuid ei nimetanud viidet: batch_ls (Tapley/Schutz/Born; Bjorck), cr3bp (Szebehely; Koon et al.), detection (Kay), attitude_budget (Wertz; Sidi), reentry (Allen-Eggers, NACA TR-1381).
  • Avaldatud security.txt aadressil kshana.dev koordineeritud avalikustamiseks.
  • Käitluskordse valideerimistase mänguväljakul. Ühe käitluse kvaliteedinäitajate tabel sisaldab nüüd iga näitaja kohta VALIDATED/MODELLED märki, mis loetakse samast otsingust fomTier(), mida kasutab allalaaditav aruanne (peegeldab faili src/fom_label.rs, mis ise tuletatakse kontrollimaatriksist), nii et elava arvu kõrval kuvatav tase ei saa kunagi registriga vastuolus olla.
  • lunar-attack-surface mänguväljaku menüüs — kõik 50 käivitatavat liiki on nüüd ühe klõpsu kaugusel (varem 49/50).
  • Viis täiendavat käivitatavat võimekuskaarti (kosmoseilm, RF-häirete hindamine, vastupidavus, CCSDS OEM koostalitlus, KIF), mis tõstavad käivitatavate kaartide arvu 11-st 16-ni. API- ja teegipõhised kaardid säilitavad ausa dokumentatsioonilingi, mitte võlts käivitusnuppu.

Muudetud#

  • Dokumentatsiooni katvust hoitakse nüüd CI-s ratšeti põhimõttel. check-doc-coverage.sh kompileerib teegi lipuga missing_docs, loeb hoiatused kokku ja ebaõnnestub ainult siis, kui arv ületab fikseeritud ülempiiri (986). Range #![warn(missing_docs)] koos -D warnings oleks muutnud ~1000 praegu dokumenteerimata avalikku üksust üleöö ehituse katkestuseks; nii ebaõnnestub ehitus uute dokumenteerimata avalike üksuste korral, samal ajal kui olemasolevat tagavara vähendatakse teadlikult.

Parandatud#

  • MCP tööriista list_scenario_kinds rida reklaamis „~17 sisseehitatud stsenaariumi liiki“, kuigi api::list_scenario_kinds() oli juba mõnda aega esitanud 50 — agendile suunatud dokument alahindas tegelikku võimekust kolmekordselt. Fikseeritud tegelikule arvule.
  • Uuendatud sõltuvusgraafi jaoks genereeriti uuesti CycloneDX SBOM-i standardi järgimise sõltumatu etalon (60 komponenti). Standardi järgimise otsus on muutumatu: normaliseeritud skeemivigu on null ja iga aatomlitsentsi tunnus kuulub endiselt ametlikku SPDX loendisse.

0.25.0 - 2026-07-15#

Lisatud#

  • Viis võimekust edutati väliselt VALIDATED tasemele, iga neist on nüüd ristkontrollitud sõltumatu kolmanda osapoole teostuse vastu sama üheselt defineeritud suuruse jaoks (mitteringlev, võrguühenduseta taastatavate testandmetega):
    • IEEE-1139 astmeseadusest Alani hälbeks teisendus võrdluses teegi allantools suletud kujuga kõigi viie mürategevi jaoks (tests/powerlaw_oadev_reference.rs);
    • CRPA MVDR / minimaalnormiga nullsuunamise kimbumoodustaja kaalud võrdluses numpy/scipy LAPACK-iga (tests/crpa_reference.rs);
    • Wahba / TRIAD / QUEST orientatsiooni määramine võrdluses SciPy SVD-ga Rotation.align_vectors müravabadel vaatlustel (tests/wahba_reference.rs);
    • CCSDS 502,0 OEM kovariatsiooniploki vahetus, mis käib edasi-tagasi läbi sõltumatu teegi oem parseri (tests/ccsds_oem_covariance_reference.rs);
    • ruutseaduslik haaramise tuvastusstatistika tuum (üldistatud Marcum-Q / P_d / P_fa / lävi) võrdluses SciPy-ga ncx2/chi2 (tests/acquisition_reference.rs). Masinkontrollitud valideerimismaatriks liigub tasemele 56 VALIDATED · 42 MODELLED · 4 PARTNER kokku 102 real (varem 51 · 47 · 4). Ausad ulatuse hoiatused säilivad — nt haaramise edutamine hõlmab ainult tuvastusstatistika tuuma; CFAR/ristumiskadu jääb MODELLED.
  • Asendiruumi kvaliteedinäitajad (fom::positioning_performance): täpsed CEP, SEP ja 2DRMS navigatsioonilahendi 3-D ENU asendikovariatsioonist pluss horisontaalne kaitsetase. CEP/SEP on täpsed mediaanradiaalvead (mitte lineaarne reegel 0.589·(σ₁+σ₂)), ristkontrollitud teegi scipy.stats rayleigh/maxwell kvantiilide ja sõltumatu NumPy Monte Carlo mediaaniga (tests/positioning_fom_reference.rs). Asendab varasema ausa teostamata tüübi — funktsiooni signatuur muutus kujult (), mis tagastas vea, kujule (cov_enu, hpl_m), mis tagastab tüübi PositioningFom.
  • Usaldusvahemiku ekvivalentsete vabadusastmete arv (EDF) viidi lõpuni kõigi Alani perekonna hinnangute jaoks (assurance::uncertainty::edf): modifitseeritud Alani, Hadamardi ja kogu-dispersiooni EDF kasutavad nüüd Greenhalli ja Riley kombineeritud EDF algoritmi ning NIST SP 1065 tabeli 7 TOTVAR vormi (varem oli teostatud ainult kattuva Alani EDF; teised kasutasid vaikselt seda uuesti), ristkontrollitud teegi allantools vastu edf_greenhall/edf_totdev (tests/uncertainty_edf_reference.rs).
  • Sõltumatud välised ristkontrollid Kuu PNT geomeetria, DOP-i, EOP, DRO ja RF-kaugusmõõtmise võimekuste jaoks (tests/validate_p*.rs, testandmed ja sõltumatu etaloni generaatorid kataloogis tests/fixtures/{p1_footprint,lunar_service,eop_prediction,rf_ranging_precision,dro_family_jpl,p2_independent_dop}/). Iga kontroll käitab juba tarnitud modelleeritud võimekust sõltumatu etaloni vastu, mille on andnud teistsugune teostus, nii et kokkulangevus on mitteringlev: orbitaalne edastus-/haaramisjalajälg võrdluses teegiga scipy.special.j1 (Cephes — tõeliselt teistsugune Besseli J1); pinnamajaka geomeetria DOP võrdluses sõltumatu NumPy lahendusega (HᵀH)⁻¹; UT1/EOP püsivusprognoosi veakasv võrdluses sama sõna-sõnalise IERS-i finals2000A ridade eraldi NumPy uuesti parsimisega; tasapinnaline kauge retrograadse orbiidi perekond võrdluses NASA/JPL kolme keha perioodiliste orbiitide andmebaasiga; ning RF-kaugusmõõtmise korduvtäpsuse eelarve võrdluses esimeste printsiipide etalonega. Need on täiendav regressioonitõend olemasolevate moodulite kohta; nende ristkontrolltestide lisamine ei muuda ise ühegi võimekuse märgistust (ülaltoodud viis edutamist on eraldi, etalonipõhised staatusemuudatused failis src/verification.rs).
  • Stsenaarium lunar-attack-surface (src/attack_surface.rs, kind = "lunar-attack-surface"): komponeeritud, binaarselt ligipääsetav (CLI / Python / MCP / wasm kaudu run_toml) P1 Kuu signaaliturbe käitus, mis ühendab lingieelarve võimsusdefitsiidi ja selle 12–18 dB tundlikkusvahemiku, nõutava segamis-/spuufimissaatevõimsuse sõltuvuse kaugusest, orbitaalse haaramisjalajälje päris antennidiagrammi korral, jälgimissilmuse spuufimishaarde sissetõmbetulemuse, õhutu keha silmapiiri ulatuse ning OSNMA/TESLA autentimiseelarve. Tühi keha taastoodab P1 lähtetaseme.
  • Võimsusdefitsiidi tundlikkusvahemik (linkbudget::deficit_sensitivity_band, deficit_power_factor): tõeline mitmeteljeline pühkimine (etalon × EIRP × kaldkaugus), ehitatud tüübile sweep::SweepAxis ja hinnatud funktsiooni received_signal_power_dbw kaudu, mis taastoodab P1 12–18 dB vahemiku ning ühtlustab 32× (ümardatud) / 36× (ümardamata) lineaarteguri väärtused.
  • Kolmemõõtmeline spuufimishaarde kuup (spoof_capture::capture_cube): lisab haardekaardile kandja/Doppleri nihke telje (J/S × koodinihe × kandjanihe, lukustusaeg raku kohta); nullkandja lõige taandub täpselt 2-D kaardiks capture_map.

Muudetud#

  • Hõreda seirevõrgu tuvastamine (monitor_network) komponeerib nüüd füüsikalise spoof_monitors AGC statistiku ja lunar_service selenograafilise nähtavusvõrgu, et tuletada iga jaama tuvastusstatistik ja geomeetria vabade parameetrite ja ad hoc suurringi ülekatte asemel; seirekohane ja võrgu tuvastustõenäosus jäävad mooduli detection hii-ruut/Marcum-Q suletud kujudeks. Väljad SurfaceMonitor / SpoofEvent muutusid füüsikalisteks (lat/lon/kõrgus/võimsus) suurusteks.

Parandatud#

  • OSNMA/TESLA autentimise lisakulu mõõtmine (nma_budget): OSNMA väljade lehekülje kohased osad (8-bitine HKROOT + 32-bitine MACK 2 s lehekülje kohta) olid ekslikult märgitud alamkaadri kogusummadeks, mistõttu lisakulu alahinnati 15 korda (1,33 bit/s). Parandatud avaldatud SIS-ICD alamkaadri (30 s) kogusummadele (HKROOT 120 + MACK 480 bitti ⇒ 20 bit/s). Tagajärg on nüüd ausalt öeldud: 50 bit/s AFS navigatsioonikiiruse korral on autentimise lisakulu esimese järgu ≈40 % kulu, mitte tühine mõne protsendi suurune; väli auth_latency on dokumenteeritud kui võtme avalikustamise viivitus (alampiir otsast lõpuni aja kuni esimese autenditud lahendini).

0.24.0 - 2026-07-09#

Lai võimekuse väljalase. See toob kaks täielikult väliselt valideeritud analüüsikomplekti — täieliku mitmekriteeriumilise otsusanalüüsi (MCDA) perekonna ja Alani triivi / pika τ kella stabiilsuse hinnangud — ning avab aluse peale uue käivitatava Kuu ajaeelarve, reaalajas raami/EOP, optilise/RF hübriidi, tsislunaarse jälgitavuse ja kihilise PNT konfliktikindluse stsenaariumikihi, lisaks Kuu pinnamajaka ja signaaliturbe võimekuse aluse. Masinkontrollitud valideerimismaatriks kasvab tasemele 51 VALIDATED · 47 MODELLED · 4 PARTNER kokku 102 real (varem 40 · 47 · 4 kokku 91 real): kõik üksteist uut rida on otsusanalüüsi ja ajastushinnangute väliste sõltumatute etalonidega valideerimised, kontrollitud sõltumatute teekide (SciPy, pymcdm, pyDecision, allantools) vastu range tolerantsiga, samal ajal kui uus PNT võimekuse pind esitatakse ausalt kui MODELLED. Nagu alati, ei edutata ühtegi arvulise mudeli väidet ilma väline andmestikuta selle taga.

Lisatud#

Käivitatavad stsenaariumid — igaüks registreeritud stsenaariumi kind-id, edastatud mootori kaudu ja CI-s otsast lõpuni tõestatud testiga tests/determinism.rs (mis käitab iga kaasasoleva scenarios/*.toml ja ebaõnnestub kõvasti iga mittekäivitatava testandmestiku korral):

  • Kihilise PNT konfliktikindlus (conflict-resilience, src/conflict_resilience.rs) — algväärtusega (seed) Monte Carlo vastupidavuse mootor mitmekihilise PNT arhitektuuri jaoks, mille juurde kuulub § 4,2 ohuvektorikohane sujuva halvenemise ellujäämise mudel (neli nimetatud ohuvektorit, kasutatava PNT ellujäämise suletud kuju, millele iga kihipõhine Monte Carlo koondub, väljastatakse tulemuse JSON-is) ning dokumenteeritud, triivi vastu kaitstud ohuparameetrite päritolu (src/conflict_threat_params.rs). MODELLED arhitektuurid; ellujäämise Monte Carlo koondumine suletud kujule on valideeritud tuum.
  • Tsislunaarne jälgitavus (cislunar-observability, src/cislunar_observability.rs) — jälgitavuse Grami maatriksi omaspekter kaare kohta, diferentsiaalselt korrigeeritud kauge retrograadse orbiidi (DRO) algväärtustaja ja sõltumatu ruutjuur-infofiltri ristkontroll, mille aposterioorne kovariatsioon muutub lõplikuks täpselt täieliku jälgitava astaku korral. MODELLED konstellatsioon; astaku/Grami maatriksi/STM/SRIF invariandid on valideeritud tuum.
  • Heterogeense optilise/RF hübriidi pidevus ja terviklikkus (hybrid-optical-rf, src/hybrid_integrity.rs, src/optical_availability.rs, src/optical_linkbudget.rs, src/cross_raim.rs) — valdkondadevaheline kättesaadavus ja terviklikkus, kui optiline ja RF PNT on kombineeritud. MODELLED.
  • Endogeenne Kuu ajaeelarve (lunar-time-budget, src/lunar_time_budget.rs) ja reaalajas raami / EOP eelarve (realtime-frame-eop, src/realtime_frame_eop.rs, src/frame_eop.rs) — P3/P4 Kuu aja ja Maa orientatsiooni eelarved, mis on tuletatud endogeenselt ajastusahelast, mitte väidetud. MODELLED.

Väliselt valideeritud analüüsikomplektid — teegivõimekused, millest igaüks siseneb maatriksisse uute VALIDATED ridadena (kontrollitud sõltumatu välise etaloni vastu, mitte enesekontrollina):

  • Täielik mitmekriteeriumilise otsusanalüüsi (MCDA) komplekt (src/mcda/) — neli meetodiperekonda: väärtuse agregeerimine (WSM, WPM, WASPAS), suhtsüsteem (MOORA) ja proportsionaalne (COPRAS), kaugus ideaalist (TOPSIS), kompromissprogrammeerimine (VIKOR) ja ülekaalumine (PROMETHEE II kuue üldistatud kriteeriumi kujuga, ELECTRE I kooskõla/lahknevus) — pluss AHP Perroni omavektori prioriteedikaalud Saaty järjepidevussuhte (CR < 0,10) väravaga, MAUT kasulikkus, Pareto frondi eraldamine ja kaalude tundlikkuse analüüs. Üheksa agregaatorit taastoodavad teegid pymcdm / pyDecision ning AHP omavektor langeb kokku SciPy/LAPACK-iga, kõik täpsusega < 1e-9 (tests/mcda_*_reference.rs). Tundlikkuse tornaado on esitatud ka konfliktikindluse stsenaariumi sees.
  • Alani triivi ja pika τ kella stabiilsuse hinnangud (src/allan.rs) — MTIE (ITU-T G.810/G.823/G.8261 tipust tippu ajavea triivistatistik, mille vastu sünkroonimismaskid on kirjutatud), MDEV ja TDEV ajapiirkonna triiv ning Theo1 / TOTVAR laiendatud ulatusega hinnangud. VALIDATED teegi allantools vastu NIST SP 1065 reaga; TOTVAR-ile rajatud nihkevaba ThéoH hübriid jääb ausalt MODELLED.
  • Kindlustus- / välise etaloni raamistik (src/assurance/) — etaloniraamistik, mis on ühendatud otse CI ausustõkkega, W3C-PROV päritolukirje deterministliku Merkle juurega ning Greenhalli ekvivalentsed vabadusastmed + hii-ruut usaldusvahemikud stabiilsushinnangutele.
  • PackRegistry / ExternalPack laienduskoht (src/registry.rs, src/api.rs) — edastuskoht, mille kaudu võimekuspaketid suunatakse ühe registri kaudu (sisseehitatud edastus asub CLI kuumal teel; puust väljas paketid ühenduvad vaikeväärtusega ExternalPack::register_into taga), kaitstud golden baidi-identsuse standardi järgimise komplektiga ning iseseisva / wasm32 CI väravaga.

Modelleeritud võimekuse alus — uued teegimoodulid, mis toidavad ülaltoodud ja tulevasi stsenaariume (veel mitte iseseisev stsenaariumi kind-id):

  • Kuu pinnamajaka DOP (src/lunar_beacon.rs) realiseeritud täpsuse eelarve, N satelliidi pühkimise ja GDOP kaardiga, pluss häiritud Kuu efemeriid (src/lunar_perturbed.rs) ning õhutu silmapiiri geomeetria / spuufimisvõimsuse pöördülesanne / AFS defitsiidi vahemik (src/jamming.rs, src/linkbudget.rs). Taaskasutab gnss_lib_py-ga valideeritud DOP tuuma.
  • LOLA-vormingus DEM sisend + maastikunähtavus (src/realdata/lola_dem.rs).
  • Signaaliturbe kolmekihiline kaitse — spuufimishaare, andurite-vaheline terviklikkus ja seirevõrgu mõõtmine (src/spoof_capture.rs, src/cross_sensor_integrity.rs, src/monitor_network.rs) koos orbitaalkiire antennijalajälje ja OSNMA autentimiseelarvega (src/antenna.rs, src/nma_budget.rs). MODELLED.

Muudetud#

  • Valideerimismaatriks ja iga tuletatud artefakt genereeriti uuesti ainsast tõeallikast (src/verification.rs): saidi register, moodulikaardi ja valideerimispäritolu diagrammid ning README / pinnakohased arvustringid näitavad nüüd 51 / 47 / 4 kokku 102-st (varem 40 / 47 / 4 kokku 91-st); arvuausluse kaitse skannib nüüd kogu git-ajalugu ja README joonised on ühtlustatud tumeda kaubamärgipaleti peale.
  • Üks ühine adaptiivne integreerimisdraiver toetab nüüd nii funktsiooni integrate kui ka integrate_dopri (src/integrator.rs), eemaldades dubleeritud sammutaja.
  • CI-sse lisati SonarQube Cloud staatiline analüüs (Rust + imporditud katvus), README-s on turvalisuse / hooldatavuse / töökindluse hinnangumärgid.
  • Kolmandate osapoolte tehisintellekti kliente nimetav lõik on siin välja jäetud; see on GitHubis failis CHANGELOG.md.

  • Väljalaske / pakendamise distsipliin: CI registreerib iga paketi/registri avaldamise jaoks juurutuskeskkonna ning keskendunud avalik iseseisev töö on aeglastest valideerimisbinaaridest eraldatud.
  • Autorsuse puudumise hügieenikaitse on piiratud ainult autorlusmärkidega, nii et integratsioonihosti või toote nimetamine ei lase enam ehitust ebaõnnestuda.
  • Dokumentatsioon: README jaotis Citing loetleb nüüd neli avaldatud arXiv eeltrükki ning pinnamajaka DOP võimekus on dokumenteeritud Kuu reas.

Parandatud#

  • Täisarvulised tsüklilugejad ujukomaga juhitud tsüklite jaoks (Sonar S2193).
  • Täpne hii-ruut pöördfunktsioon madalate vabadusastmete korral Newtoni täpsustuse kaudu kindlustuse usaldusvahemiku teel.
  • kshana.dev: standardite jaotis avaneb nüüd vaikimisi ja registri arvu tagavaraväärtus on parandatud; jälgitavuse kihi ümber olevad aegunud README / saidi stringid sünkroonitud.

0.23.0 - 2026-06-29#

Võimekuse väljalase, mis lisab üldise Fisheri informatsiooni / Cramér–Rao jälgitavuse ja optimaalse eksperimendikavandi kihi ning väljalase, millele Kuu PNT jälgitavuse artikkel toetub. Masinkontrollitud valideerimismaatriks kasvab tasemele 40 VALIDATED · 47 MODELLED · 4 PARTNER kokku 91 real (varem 39 · 46 · 4 kokku 89 real): uus hindamismootor on kontrollitud välise etaloni vastu ja on VALIDATED; selle Kuu rakendus on ausalt MODELLED. Nagu alati, ei edutata ühtegi arvulise mudeli väidet ilma väline andmestikuta selle taga.

Lisatud#

  • src/fim.rs — Fisheri informatsioon, Cramér–Rao piirid ja optimaalne eksperimendikavand. Üldine korduvkasutatav hindamisteooria mootor: Fisheri informatsioonimaatriks M = HᵀWH mõõtmise Jacobi maatriksist ja kaaludest; sümmeetriline omaväärtuslahendaja (tsükliline Jacobi); Cramér–Rao alampiir pöördmaatriksi kaudu või Moore–Penrose pseudopöördmaatriksi pluss nullruumi baasi kaudu, kui informatsioon on astakupuudulik (vaba võrgu / datumi defekti juhtum); ning D-, A-, E- ja T-optimaalsed eksperimendikavandi mõõdikud koos valijaga best_design kandidaatgeomeetriate üle. VALIDATED NumPy (eigh/inv) ning Kay (1993) avaldatud suletud kujuga piiride vastu täpsusega 1e-9 (tests/fim_observability_reference.rs), nii et see siseneb maatriksisse välise etaloni reana, mitte enesekontrollina.
  • Kuu ühis-OD jälgitavus (lunar_observability failis src/lunar_combination.rs, esitatud Kuu kombinatsiooni aruandes): rakendab FIM/CRLB mootori ühisele orbiidi ja kella lahendusele, et esile tuua absoluutse jaama datumi defekt, selle astaku taastumine Maa baasjoonega jaamade lisamisel, saavutatud jaama asendi CRLB ja E-optimaalne tinglikkus. Ausalt MODELLED — hindamismootor on väliselt valideeritud, kuid Kuu võrk, millele seda rakendatakse, on esindussimulatsioon ja ükski praegune andmestik ei saa seda geomeetriat mõõtmiseks muuta.
  • Esindav elliptilise Kuu külmutatud orbiidi (ELFO) geomeetria Kuu kombinatsiooni stsenaariumi jaoks (orbit_ecc, orbit_inc_deg, orbit_argp_deg, orbit_planes; ringpaigutus jääb vaikeväärtuseks) ning aruande ilma-VLBI jälgitavuse väli, et datumi defekti tulemust saaks näidata geomeetriaüldisena. Sama 3→1→0 redel ja kolme jaama lävi kehtivad Moonlight/LCNS-perekonna ELFO-l ning kolme Maa VLBI baasjoone korral on absoluutne jaama asend jälgitav alammeetrilise piiriga — lukustatud testiga elfo_geometry_confirms_the_observability_structure. Endiselt MODELLED.

Muudetud#

  • Valideerimismaatriks ja iga genereeritud tõendiartefakt genereeriti uuesti ainsast tõeallikast (src/verification.rs): register (web/data/verification-matrix.json), docs/VERIFICATION-MATRIX.md, docs/MODELLED-RATIONALE.md, valideerimise jaotuse ja etaloniliigi joonised ning README arvustringid kõigil levituspindadel näitavad nüüd 40 / 47 / 4 kokku 91-st.

0.22.1 - 2026-06-29#

Ainult pakendamise paranduslõige. Mootori, stsenaariumi ega tulemuste muudatusi pole; valideerimismaatriks on muutumatu: 39 VALIDATED · 46 MODELLED · 4 PARTNER kokku 89 real.

Parandatud#

  • npm publish: crate'i manifestist tuletatud pakett repository.url kasutas vale suurtähestusega GitHubi omanikku (AshfordeOU), mis ebaõnnestus npm-i sigstore päritolu kontrollis (see võrdleb omanikku tõstutundlikult). Manifesti repository on nüüd kanooniline väiketähtedega ashfordeOU, nii et genereeritud package.json vastab päritoluobjektile ja npm-i väljalase avaldatakse.

Muudetud#

  • Wheel-i ehitus fikseerib codegen-units = 1, et manylinux wheel oleks uuesti ehitamisel bait-baidilt reprodutseeritav (uuesti ehitamise ja diffi reprodutseeritavuskontroll).

0.22.0 - 2026-06-29#

Konsolideeriv väljalase, mis keskendub tõenditele, päritolule ja levitamisdistsipliinile. Masinkontrollitud valideerimismaatriks kasvab tasemele 39 VALIDATED · 46 MODELLED · 4 PARTNER kokku 89 real (varem 15 · 42 · 4 kokku 61), mille taga on modelleeritud võimekuste ristvalideerimine sõltumatute väliste etalonidega. Iga levitatav artefakt kannab nüüd krüptograafilist SLSA ehituspäritolu atesteeringut, sisaldab CycloneDX SBOM-i ja avaldatakse sünkroonselt kõigil pindadel. Ühtegi arvulise mudeli väidet ei edutata ilma väline andmestikuta selle taga; uus võimekus jääb ausalt MODELLED.

Lisatud#

  • Orientatsioonidünaamika (src/attitude_dynamics.rs, MODELLED) — väändemomendivaba jäiga keha Euleri võrrandid + kvaternioonkinemaatika (RK4), koos jäävusseaduste enesetestidega (kvaternioonnorm, kineetiline energia, |Iω|, sümmeetrilise vurri pretsessioon).
  • Modelleeritud võimekuste ristvalideerimine sõltumatute väliste etalonidega, mis viib valideerimismaatriksi 39 VALIDATED reani, millest igaühe taga on väline andmestik (CI ausustõke keelab VALIDATED staatuse ilma selleta). Uusimad välise etaloniga valideerimised: optilise kella mõõdetud stabiilsuskõver (quantum_trade ADEV-kõvera sobitus taastoodab Norcia et al. avaldatud ⁸⁸Sr optilise võrekella σ_y(τ), Science 366:93 (2019), Zenodo 10.5281/zenodo.3382347, CC-BY-4.0, kaasatud kataloogi tests/fixtures/optical_clock_adev/); GPS L1 C/A hajutuskoodi genereerimine (src/sdr.rs G1/G2 LFSR taastoodab IS-GPS-200 tabeli 3-Ia koodifaasi oktaalid PRN 1–9 jaoks); ning SRTM kõrgusmudeli lugeja päris maastikul (src/altpnt/terrain.rs loeb kaasatud avaliku omandi NASA/USGS SRTM v3 lehe N36W117 / Death Valley, paigutades Badwater Basini selle dokumenteeritud uuringuvahemikku).
  • Uued MODELLED võimekused, millest igaüks on sisemiselt ristkontrollitud suletud kuju või õdekoodi tee vastu: Clohessy–Wiltshire / Hilli suhtelise liikumise dünaamika, TDOA/FDOA passiivne emitteri geolokatsioon, Wahba/TRIAD/QUEST orientatsiooni määramine, GNSS kandelaine faasi täisarvuliste mitmetähenduslikkuste lahendamine (LAMBDA), B-tasandi sihtimine ja koonuste liitmise gravitatsioonimanööver, CRPA häiretevastane antennimassiivi kimbumoodustus, GNSS ruutseaduslik haaramisstatistika, kvantinertsiaalanduri vöötmitmetähenduslikkus / dünaamiline ulatus, IEEE-1139 astmeseaduslik kellamüra + flicker-FM põhi ning CCSDS-OEM kovariatsiooniploki vahetus.
  • Ühe allikaga tõenditeregister genereeritud kontrollidokumentatsiooni ja triivikaitsega; sirvitav valideerimisregister aadressil kshana.dev koos kaardipõhiste tõendite otselinkidega.
  • Masinloetavad tsiteerimismetaandmed — codemeta.json (CodeMeta 2,0) ja .zenodo.json, mis on Cargo manifestiga seotud testiga tests/citation_metadata_doc_sync.rs.
  • Tarneahela päritolu — SLSA ehituspäritolu atesteering crate'i tarballile, wheel-idele, sdist-ile ja npm tarballile; PyPI OIDC Trusted Publishing; CycloneDX SBOM, mis on kaasatud wheel-i ja npm paketti; reprodutseeritava ehituse diff ja väljalaskejärgne kontroll.
  • Leitavus — robots.txt, sitemap.xml ning Open Graph / JSON-LD metaandmed aadressil kshana.dev; maatriksist tuletatud genereeritud joonis validation-breakdown.
  • Pinnakohased README-d crates.io / PyPI / npm jaoks koos arvuausluse kaitsega.

Muudetud#

  • Sagnaci aja edastamise etalon uuendati tüübile ExternalDataset — ekvatoriaalse ringi Sagnaci parandust kontrollitakse nüüd Ashby avaldatud 207,4 ns vastu (Living Reviews in Relativity 6:1, 2003, võrrand 1,29; taastoodetud täpsusega < 0,05 ns). Liitaja edastamise võimekus jääb ausalt MODELLED.
  • Dokumentatsioon, diagrammid ja joonised värskendati elava maatriksi (39/46/4/89) järgi: valideerimise päritolu diagramm, joonis oracle-kind-stacked (nüüd maatriksist genereeritud CI triivikaitsega), VALIDATION/PROVENANCE/CAPABILITY/QUANTUM-MODELS/WHEEL_TAGS, arhitektuuri- ja õpetusdokumendid ning kshana.dev registri kogusumma.
  • Lähtekoodipuu vormindati uuesti fikseeritud rustfmt-iga (tööriistaahel 1.93.0) — puhas stiil, käitumine ei muutu.
  • Sünkroonne versioonimine. Iga levituspind (crate, PyPI, npm, MCP crate + OCI kujutis, JetBrainsi plugin) versioneeritakse nüüd mootoriga sünkroonselt, mida CI-s jõustab scripts/check-version-sync.sh.
  • JetBrainsi plugin litsentsiti ümber tingimusele AGPL-3.0-only (avaldatud 0.1.1 reklaamis endiselt Apache-2.0) ja tuletab nüüd oma Marketplace'i versiooni väljalaskemärgendist.
  • Töökindluse tugevdamine — mittetestitavad unwrap-kutsed eemaldati või põhjendati; clippy::unwrap_used on lubatud mittetestkoodil.
  • kshana.dev tõendid-kõigepealt põhjalik ümberkorraldus: domineeriv avaplokk, arhitektuuridiagrammid ja tulemusjoonised, i18n, kokkupandav/kohanduv register ja Standardite jaotised.

Parandatud#

  • SP3 täppisefemeriid — rakendada interpoleerimisel IGS Maa pöörlemise sõlme parandust.
  • Registripildid — PyPI/crates.io/npm README-d kasutavad absoluutseid pildi URL-e; peamise README suhtelised pilditeed kuvati PyPI 0.21.0 lehel katkiste piltidena. CI kaitse (tests/surface_readme_image_urls_doc_sync.rs) takistab regressiooni.
  • CI — fmt + clippy roheline; lõpetati kompileerimine git-ignoreeritud päris andmete vastu.

Testid#

  • Kalmani kella kovariatsioon jääb PSD ja sümmeetriliseks (omaduspõhine test, tests/property.rs).
  • Dokumentatsiooni sünkroonikaitsed: iga avalik valideerimisarvu string, tsiteerimismetaandmed, genereeritud joonis ja pinna README pildi URL-id on kõik seotud oma tõeallikaga.

0.21.0 - 2026-06-26#

See väljalase lisab avatud mootorile kaks MODELLED rakenduskomplekti — kvantvõimalustega PNT demonstraator (usaldatav kvantaja edastamine, GNSS-vaba kvantnavigatsioon, kvanttõrgete/anomaaliate tuvastamine) ja Kuu / tsislunaarne PNT komplekt (Kuu koordinaataeg, Kuu VLBI, ühis-OD+kell, tugisüsteemi realiseerimine, teenindusmaht, diferentsiaalne PNT, koostalitluse eksport) — mõlemad käivitatavad ühe stsenaariumi kind-id abil, mõlemad väljastavad ausa kirje TradeEvidence ning esindatavuse / lünkade lennuni registri. Samuti lisab see kuus uut välise etaloniga valideerimist, mis viivad masinkontrollitud valideerimismaatriksi tasemele 15 VALIDATED · 42 MODELLED · 4 PARTNER kokku 61 real. Uued rakendusarvud on MODELLED illustratiivsetest avaliku allika parameetritest — TRL-i, lennupärandit, sertifitseerimist ega agentuuri heakskiitu pole — ja nende taaskasutatavad valideeritud tuumad on sellisena märgistatud.

Lisatud#

  • Kvantvõimalustega PNT demonstraatorikomplekt (quantum-time-transfer, quantum-gnss-free-nav, quantum-anomaly-detect). Kolm käivitatavat MODELLED rakendusvaldkonda mootori taga, millest igaüks väljastab TradeEvidence pluss esindatavuse / lünkade lennuni kirje:
    • Usaldatav kvantaja edastamine (src/timetransfer_chain.rs) — optilise võrekella + fotoonilise lingi kahesuunaline eelarve võrdluses CSAC + RF-iga, taaskasutades ajastuse kaitsetaset, koos viivitus-/kordusründe turbe kvaliteedinäitajaga (1 − P_md) ning kellaanomaalia tuvastamise + CUSUM latentsusega.
    • GNSS-vaba kvantnavigatsioon (src/quantum_nav_od.rs) — külmaatom-interferomeetriline inertsiaalne väljajooks võrdluses navigatsioonikvaliteediga INS-iga GNSS-i katkestuse ajal; ausalt märgitud, et ilma välise lahenduseta jääb kiirendusmõõturi nihe jälgimatuks, nii et viga siiski kasvab.
    • Kvanttõrgete / anomaaliate tuvastamine (src/quantum_faults.rs) — märgendatud tõrkekataloog bootstrap-CI ROC AUC-ga ja minimaalselt tuvastatava tõrkega fikseeritud valehäire määra juures.
    • Ühine kvantseadmete veamudelite teek (src/quantum_devices.rs) ja ühtne kvant-versus-klassikaline kompromissiraamistik (src/qtrade.rs) on kõigi kolme aluseks.
  • Kuu / tsislunaarne PNT komplekt. Seitse käivitatavat MODELLED stsenaariumi kind-id, mis on ehitatud CR3BP tuumale: Kuu koordinaatkaeg (LTC/TCL − TT sekulaarne kiirus, src/lunar_time.rs), geodeetiline Kuu VLBI viivituse vaadeldav suurus (src/lunar_vlbi.rs), ühine mitme tehnika OD + kell partii hindaja (src/lunar_combination.rs), tugisüsteemi realiseerimine (7-parameetriline Helmert + IAU 2015 WGCCRE seos, src/lunar_frame_realise.rs), Moonlight / LCNS-klassi teenindusmahu analüüs (src/lunar_service.rs), Kuu diferentsiaalne PNT (src/lunar_dpnt.rs) ja LunaNet / IOAG-ga joondatud koostalitluse eksport (CCSDS-OEM + Kuu ajaskaala KIF ümbrikus, src/lunar_interop.rs). Kõik MODELLED illustratiivsetest avaliku allika parameetritest; pole valideeritud päris VLBI / Gateway jälgimise vastu; agentuuriga sidet ega heakskiitu pole.
  • Kuus uut välise etaloniga valideerimist (valideerimismaatriksis on nüüd 15 valideeritut):
    • ADEV / HDEV päris tseesiumikellal 5071A — valideeritud Stable32 dekaadipunktide etalonide vastu (tests/cs5071a_reference.rs).
    • OADEV / MDEV / TDEV Stable32 etalonil PHASE.DAT — valideeritud Stable32 avaldatud tabelite vastu (tests/phasedat_reference.rs).
    • Anomaaliate tuvastamise ROC AUC päris ESA OPS-SAT telemeetrial — valideeritud scikit-learn-i vastu (tests/opssat_ad_reference.rs).
    • ICGEM raskusjõufunktsionaalide süntees — valideeritud GRS80 normaalraskusjõu standardi vastu (Somigliana γ täpsusega 3.5e-12; EGM2008 häiringukaart, tests/icgem_gravity_reference.rs).
    • Klobucharri edastatav ionosfäärimudel — valideeritud RTKLIB-i vastu (tests/klobuchar_reference.rs).
    • RAIM tuvastustuum (171 juhtu, tests/raim_reference.rs) ja SBAS DO-229E kaitsetase päris EGNOS-i andmetel (RTKLIB SBAS-PL fork, tests/sbas_reference.rs) — mõlemad valideeritud oma väliste etalonide vastu.
  • Esindatavuse ja lünkade lennuni register (src/representativeness.rs). Struktureeritud kirje, mille iga demonstraator väljastab — mis on esindav, mis on lihtsustatud ja mis seisab mudeli ning lennu vahel — iga MODELLED kompromissi aus kaaslane.
  • Uuringute koondamine ja CLI mugavus. Stsenaariumikomplekti manifest ühe käsuga uuringute koondamisega, räsistabiilsed uuringu metaandmed + --study-name, stsenaariumi lintimine käsuga --validate ning kvaliteedinäitajakohane valideerimistaseme esitus uuringuaruannetes.

Muudetud#

  • kshana.dev kujundati ümber ühise valdkonnaselgroo ümber — võimekused ja valideerimine liideti üheks valdkonnauurijaks ühise sõnavaraga, uued valideeritud saared tuuakse nähtavale, maapinnatäpne animeeritud Maa instrument ja uuringu tellimise üleskutse ning Ashforde OÜ kaubamärk/lingid.
  • README + ARCHITECTURE auditeeriti täielikkuse ja aususe osas — aegunud valideeritud arvud parandati (nüüd 15 välist etaloni), diagramme laiendati ning tsiteeritakse eeltrükke Conditional Timing Protection Level (arXiv:2606,24210) ja RF-häirete optimismilõhe (arXiv:2606,22054).
  • Allikad kataloogis paper/ ja JOSS-i mustandi torujuhe hoitakse avalikus hoidlas.

0.20.0 - 2026-06-22#

See väljalase lisab avatud mootorile neli uuringuvõimekust — tinglik ajastuse kaitsetase, raamistikuga joondatud PNT vastupidavuse skoorimine, RF-häirete optimismilõhe hindamine ning tarkvaraliselt määratletud vastuvõtja / päris andmete esiots — igaüks reprodutseeritav ühest käsust ja kirjutab baidi tasemel deterministliku artefakti. Kõik uuringud on MODELLED (sünteetiline või avaliku andmestiku kalibreerimine), kannavad oma ausat päritolu (mootori versioon, algväärtused, konfiguratsiooni räsi) ja valideerimismärgendeid ning ei ole sertifitseerimised.

Lisatud#

  • Tinglik ajastuse kaitsetase (tpl). Holdover-iga piiratud tõkestus tuvastamata ajaveale GNSS-i spuufimise korral, k-sigma seirepõhjaga, tuvastusviivituse ulatuses van Loani väljajooksu dispersiooniga ja CUSUM aja-alarmini. Kalibreeritud päris salvestatud rünnakul (JammerTest 2024, stsenaarium 2.1.1) käsu cargo run --release --example tpl_jammertest kaudu, mis taastoodab selle etalontabeli avaliku salvestise skalaaridest (toorandmestikku ei levitata edasi).
  • Raamistikuga joondatud PNT vastupidavuse skoorimine + otsuse ebastabiilsuse uuring (resilience). Arhitektuurimudel, RPCF-iga joondatud skoorimine, Dirichlet' kaalusimpleks, Kendalli tau ja top-1 ümberpöördumise määra ebastabiilsus ning ühisrežiimi mitmekesisuse kollaps (Hill-N2), käsuga cargo run --release --example resilience_report -- paper-artifacts/resilience-study.json. Vastavustabel failis docs/RESILIENCE-CROSSWALK.md.
  • RF-häirete optimismilõhe uuring (impairment_study, impairment_ml, eval_stats). 13 detektori paneel parameetritest lähtuval sünteetilisel korpusel, jaotusesisese ja jaotusevälise optimismilõhe võrdlus, skaleerimisseaduse trendid permutatsiooni nullmudeliga ning ühe välja jätmise (leave-one-out) halvenemise ennustaja, käsuga cargo run --release --example optimism_study -- paper-artifacts/optimism-study.json.
  • Tarkvaraliselt määratletud vastuvõtja esiots (sdr) ja päris andmete adapterid (realdata/). Toor IQ/IF korrelaatorikraanideks ja SQM-iks, pluss sisendiadapterid (RINEX, u-blox UBX, GnssLogger, JammerTest, Yunnan, SatGrid) ja sondinäited. Need loevad salvestisi, mille kasutaja kohapeal esitab; ühtegi salvestist ei ole commit'itud.
  • Commit'itud uuringuartefaktid. Baidi tasemel deterministlikud optimism-study.json ja resilience-study.json on nüüd jälgitud kataloogis paper-artifacts/, et uuringu arve saaks kontrollida ilma uuesti ehitamata; need on endiselt taastatavad ülaltoodud generaatoritest. Toorandmestikud jäävad hoidlast välja (/realdata-cache/).

Muudetud#

  • Versioon tõsteti tasemele 0.20.0 failides Cargo.toml, CITATION.cff ja README; ristumisuuringu artefaktid genereeriti uuesti, et nende tempel vastaks väljalastud versioonile.

0.19.0 - 2026-06-18#

Muudetud#

  • Litsentsiti ümber Apache-2.0-lt GNU AGPL-3.0-only peale, kommertslitsentsiga, mida saab Ashforde OÜ-lt (topeltlitsentsimine). Avatud mootor jääb täielikult avatuks ja avalikult kontrollitavaks; AGPL-i võrgu-copyleft (§13) tähendab, et suletud või majutatud tuletis peab tulema tagasi avatud lähtekoodi alla — või võtma kommertslitsentsi. See kaitseb valideeritud tuuma fork-and-close vastu, säilitades samal ajal avaliku, käivitatava ja auditeeritava mootori usaldusväärsuse. Vt LICENSE (AGPL) ja uut LICENSING.md (mida iga litsents katab ja millal see kehtib).
    • LICENSE sisaldab nüüd AGPL-3.0 teksti; SPDX päised kõigis allikates uuendati väärtusele AGPL-3.0-only; NOTICE, README, GOVERNANCE, GLOSSARY, veebisait ning crate'i/paketi metaandmed (Cargo.toml, pyproject.toml, CITATION.cff, MCP crate + kujutis) uuendati vastavalt.
    • Panustajate tingimused (CONTRIBUTING.md) litsentsivad nüüd sissetuleva AGPL-i all ja annavad Ashforde OÜ-le õiguse lisada panused kommertslitsentsitud väljaandesse, et topeltlitsents jätkuvalt toimiks.
    • Sõltuvuspoliitika on muutumatu, kuid uuesti põhjendatud (deny.toml, GOVERNANCE): sõltuvused jäävad lubavaks (Apache/MIT/BSD/ISC). AGPL on lubatud ainult kshana enda crate'i jaoks — copyleft-sõltuvus rikuks kommertsväljaande ja lõhuks topeltlitsentsimise.
    • Märkus allavoolu kasutajatele: see on copyleft-ümberlitsentsimine. Kasutajad, kes toetusid Apache-2.0 lubavatele tingimustele, saavad jätkata viimase Apache-2.0 väljalaske kasutamist (v0.18.0 ja varasemad, nagu avaldatud); alates v0.19.0 kehtib AGPL-3.0 / kommertslitsents.

Turvalisus#

  • Tõsteti pyo3 0,24 → 0,29, et eemaldada RUSTSEC-2026-0176 / RUSTSEC-2026-0177 (GHSA-36hh-v3qg-5jq4 / GHSA-chgr-c6px-7xpp) väliste OSV/sõltuvuste skannimistest. Mõlemad on funktsioonitaseme nõuanded, mille mõjutatud funktsioone (BoundList/TupleIterator::nth/nth_back, PyCFunction::new_closure) Kshana kunagi ei kutsu, ja pyo3 on valikuline (python-funktsiooniga) sõltuvus — seega tegelik kokkupuude oli null —, kuid tõstmine hoiab puhta skannimise allavoolu auditeerijatele. Failis src/python.rs migreeriti pyo3 0,29 API-le (Bound tagastustüüp funktsioonile scenario_kinds; selgesõnaline skip_from_py_object pyclass'il RunOutput). Kõik 11 Pythoni sidumise testi läbivad uuesti ehitatud laiendi vastu.

0.18.0 - 2026-06-17#

Lisatud#

  • Üksteist uut käivitatavat stsenaariumi liiki — kahe pakkumise demonstraatorid, CCSDS koostalitluse sild ja esimese järgu missioonianalüüsi / keskkonnakomplekt (kõik MODELLED, lisanduvad; olemasolevad reprodutseeritavuse golden-failid muutumatud). Igaüht saab edastada CLI / Python / WASM / MCP kaudu, igaühel on scenarios/<kind>.toml ja selge MODELLED märgend oma tulemuse JSON-is ning üherealine kokkuvõte (liigipõhine test failis tests/dominance_demonstrators.rs kinnitab, et märgend on olemas ja et väljund ei sisalda kunagi stringi VALIDATED):

    • impairment-eval (src/impairment_eval.rs) — masinõppel põhineva RF-häirete tuvastuse hindamise katsestend: märgendatud sünteetiline korpus + detektorist sõltumatu ROC/AUC raamistik + jaotusesisese/jaotusevälise optimismilõhe aruanne (ainult tööomadused — mitte kunagi välja-/IQ-andmed).
    • quantum-trade (src/quantum_trade.rs) — kvant-versus-klassikaline PNT kompromiss mõõdetud ADEV sisendiga ja GNSS-ita vastupidavuse ümbrisega.
    • space-weather (src/space_weather.rs) — päikese/geomagnetilised indeksid (Kp↔ap IAGA tabel, päevane Ap, tsentreeritud 81-päevane F10.7a), Jacchia-71 eksosfääri temperatuur ja aktiivsusest juhitud termosfääritiheduse sidestus staatilise atmosfääri kohal (MITTE NRLMSISE absoluuttiheduse mudel).
    • oem-interop (src/oem.rs) — CCSDS 502,0 OEM import + edasi-tagasi sild GMAT / Orekit / STK efemeriididele (lugeja parse_oem, kirjutaja täpne pöördfunktsioon).
    • launch-window (src/launch.rs) — kahe keha stardiazimuut (sin Az = cos i/cos lat), tasandimuutuse Δv, stardiplatsi pöörlemisbonus ja päevase võimaluse geomeetria.
    • reentry (src/reentry.rs) — Allen-Eggersi ballistilise atmosfääri taassisenemise koridor: maksimaalne aeglustus, maksimaalse g ja maksimaalse kuumenemise kiirused, maksimaalse g kõrgus.
    • eo-coverage (src/eo_payload.rs) — EO vööndi laiuse / GSD / ligipääsu / taaskülastuse geomeetria (SMAD kosmosekolmnurk).
    • space-packet (src/space_packet.rs) — CCSDS 133.0-B Space Packet esimese päise kodeerimine/dekodeerimine bitttäpse edasi-tagasi teisendusega.
    • attitude-budget (src/attitude_budget.rs) — 3-DOF gravitatsioonigradiendi moment + RSS sihtimisvea eelarve (skalaarne eelarve enne riistvara, mitte juhtimissilmus).
    • passes (src/passes.rs) — maajaama tõusu/loojangu ülelennu prognoos (AOS/TCA/LOS, maksimaalne kõrgus, ligipääs).
    • link-budget (src/linkbudget.rs) — ühesuunaline CCSDS-401 / DSN-810-005 lingivõrrand (C/N₀ = EIRP − FSPL − L_other + G/T − k, FSPL / Eb·N₀ / varu / sulgumine).
  • 17-olekuline hübriidne kvant- + klassikaline tihedalt seotud UKF — esitatud käivitatava stsenaariumina (MODELLED). Uus stsenaariumi liik hybrid-ukf (src/fusion/hybrid_ukf.rs, scenarios/hybrid-ukf.toml), mis muudab varem ainult API kaudu kättesaadava 17-olekulise tihedalt seotud GNSS/INS unscented Kalmani filtri (UKF) (src/fusion/tightly_coupled17.rs) stsenaariumiks, mida CLI/Python/WASM/MCP sidumised saavad edastada. 17-olekuline veavektor on 15 INS-i veaolekut (asend, kiirus, orientatsiooni nihe, kiirendusmõõturi + güroskoobi nihe), mida täiendab CAI-st tuletatud kiirendusmõõturi nihke parandus — külmaatom-interferomeeter (src/inertial/quantum_imu.rs) määrab kiiruse juhusliku käigu põhja q_va, nii et pikaajaline väljajooksu triiv on kvantanduriga piiratud — ning 2-olekuline faasi + sageduse kell, mille protsessimüra tuleb q-parameetri kellamootorilt (clock_state::q_from_allan, mis kujutab kella Alani hälbe profiili PSD-deks q_wf/q_rw, skaleeritud kaugusühikutesse). Platvormi abistab GNSS sissejuhatuseks (filter õpib nihked, kiiruse ja kella), seejärel veerab see GNSS-i katkestuse läbi ainult CAI IMU + kella abil, nii et käitus demonstreerib klassikalise IMU lühiajalise + kvant pikaajalise hübridiseerimist. Kvaliteedinäitaja on filtri enesekooskõla: koondatud NEES (Normalised Estimation Error Squared, hinnatava asendi/kiiruse/kella alamhulga üle) ja innovatsiooni valgeduse NIS (Normalised Innovation Squared) Monte Carlo ansambli üle, kontrollitud nende 95 % χ² vööndite vastu (Bar-Shalom §5,4). Sobitatud filter jääb vööndite sisse; tahtlikult valesti häälestatud filter (nupud q_factor / r_factor) märgitakse — objektiivselt kontrollitav, eristav värav, mitte tembeldaja. NEES/innovatsiooni valgeduse kontroll on STATISTILINE ORAAKEL (SÕLTUMATU ETALON): enesekooskõla väide (filtri teatatud kovariatsioon vastab ausalt tema enda vigade hajuvusele modelleeritud müra korral), MITTE reaalse maailma täpsuse garantii. Aus ulatus: kõik on modelleeritud / simulatsioon — CAI ja kella sisendid on piiritletud, kirjandusele esindavad väärtused, mitte mõõdetud riistvara; CAI riistvara ja selle Key-Person jäävad partneri omandisse; siin ei vihja miski TRL > 3-le, lennupärandile ega välisele valideerimisele (tulemuse JSON ja üherealine kokkuvõte kannavad neid märgendeid selgesõnaliselt). Ainus konstantse kiirusega horisontaalne trajektoor jätab orientatsiooni- ja IMU nihke olekud vaid nõrgalt jälgitavaks, seega hinnatakse NEES-i 8 hinnatava oleku üle; manööverdav trajektoor täieliku 17 jälgitavuse jaoks on teekaardil. Lisab ka instrumentatsiooni Ukf::update_stats (tagastab uuenduskohase NIS-i) ja TightlyCoupled17::{update_gnss_nis, nees, nees_subset} kooskõla jaoks. Kõiki olemasolevaid stsenaariume see ei mõjuta (lisanduv; reprodutseeritavuse golden-failid muutumatud).

  • Järjestikune (rekursiivne) maastikupõhine navigatsioon — SITAN töötava filtrina. Uus stsenaariumi liik terrain-slam (src/altpnt/sequential.rs, scenarios/terrain-slam.toml), mis käitab olemasolevat kõrgusmõõtja-vs-DEM mõõtmismudelit epohhhaaval läbi mootori particle_filter SIR, mitte partii jämedalt-täpseni otsinguga, mida terrain-nav kasutab ühe konstantse INS-i nihke taastamiseks. Igas teekonnapunktis propageeritakse pilve INS-i teatatud juurdekasvuga (mis ise on riknenud sammukohase triivikasvuga), kaalutakse uuesti maastikusobitusega ja valimit võetakse uuesti degeneratsiooni korral — nii et ajas muutuvat INS-i triivi jälgitakse piki rada, mida konstantse nihke sobitus struktuurselt ei suuda. Sünteetilisel DEM-il jääb rekursiivne hinnang piiratuks ja koondub uuesti (lõpp ≈ 70 m), samal ajal kui abitu inertsiaallahend hajub piiramatult kuni ≈ 5 km; epohhikohane viga järgib maastiku eristatavust (see veerab nihkega INS-il üle lamedate sadulate ja lukustub uuesti eristuva reljeefi kohal) ning efektiivse valimi suuruse seire kinnitab tervet pilve. Aus ulatus: kaart on teada ja fikseeritud — rekursiivne lokaliseerimine salvestatud DEM-i vastu (maastiku SLAM-i lokaliseerimise pool), mitte ühine kaardi hindamine; konstruktsiooni poolest mitteringlev (süstitud triivirampp on sõltumatu tõde). Kõiki olemasolevaid stsenaariume see ei mõjuta (lisanduv; reprodutseeritavuse golden-failid muutumatud).

  • GNSS-ita vastupidavuse selgroog + FutureNAV demonstraatori lõigud (src/holdover.rs, ja vastupidavuse ümbriku alused kataloogides src/impairment_eval.rs, src/quantum_trade.rs, src/navsignal.rs, src/inertial/quantum_imu.rs, FutureNAV kontrolli lõikudega failis src/verification.rs). Komponeerib alternatiivse PNT ehituskivid — kella holdover, signaali jälgimine, inertsiaalne väljajooks, maastik — üheks GNSS-i katkestuse vastupidavuse looks. MODELLED; lisanduv.

  • Kshana Interchange Format (KIF) — versioneeritud, ise end kirjeldav artefaktiümbrik (src/interchange.rs). Skeemimärgendiga ümbris stsenaariumi tulemuste ümber, nii et salvestatud artefakt kannab kaasas oma liiki, skeemiversiooni ning MODELLED/VALIDATED märgendeid ja vanemad ümbrikud jäävad edasiühilduvalt loetavaks. Lisanduv; olemasolev tulemuse JSON muutumatu.

  • Navigatsioonisignaali modulatsioon / jälgimine + CR3BP halo/NRHO diferentsiaalparandaja (src/navsignal.rs, src/cr3bp.rs). Esimese järgu navigatsioonisignaali modulatsiooni ja jälgimise mudel ning piiratud kolme keha ülesande diferentsiaalparandaja halo / peaaegu sirgjoonelistele halo orbiitidele, esitatud olemasoleval kaugkosmose võimekuse teljel. MODELLED.

  • Jaotusnihke hindamisrežiim + korpuse tõsiduse skaala nupp tööriistale impairment-eval (src/impairment_eval.rs). Lisab ROC/AUC optimismilõhe raamistikule selge jaotusesisese/jaotusevälise jaotuse ja häälestatava korpuse tõsiduse skaala (ainult tööomadused — mitte kunagi välja-/IQ-andmed).

  • Katvuse hinna kohta ROI + tuvastamata jäänud sündmuse terviklikkuse mõju vastendus (src/frugal.rs, src/integrity_impact.rs). Säästliku inseneeria ROI lääts (hind katvuse ühiku kohta) ja vastendus tuvastamata jäänud sündmuste määrast terviklikkuse mõjule. MODELLED; lisanduv.

  • Viidatud külmaatom-interferomeetri (CAI) veamudeli parameetrileht (src/inertial/quantum_imu.rs). Kirjandusele viitav, piiritletud parameetrileht CAI inertsiaalse mudeli jaoks — sisendid on viidatud, mitte mõõdetud riistvara (TRL-i / lennuväidet pole); see toidab kiiruse juhusliku käigu põhja stsenaariumis hybrid-ukf.

  • Projekti juhtimine. GOVERNANCE.md, mis dokumenteerib otsustusmudeli ning avatud/suletud piiri; võimekuskaardi kogukonna/juhtimise rida liigub none → partial, et seda kajastada.

Parandatud#

  • ARAIM terviklikkuse kaitsetase — nominaalne nihe (b_nom) ja σ_URA on nüüd rakendatud. MHSS kaitsetase lahutab nüüd ühepoolse nominaalnihke projektsiooni b_k = Σ_i |s_i|·b_nom iga tõrkerežiimi kohta ja kasutab terviklikkuse sigmat σ_URA (erinev täpsuse sigmast σ_URE), mida kannab Integrity Support Message. See teeb kaitsetaseme konservatiivsemaks ja standardikohaseks ning seetõttu muudab olemasolevate terviklikkuse stsenaariumide teatatud PL väärtusi. ISM/stsenaarium saab väljad #[serde(default)] sigma_ura_m / b_nom_m, nii et sisendid, mis neid ei sea, säilitavad varasema käitumise. Vt docs/ARAIM_REFERENCE.md taastatud valemi b_k ja ausa teostusmärkuse kohta.

  • Spuufimisseire χ² kooskõla. parity_raim_test kasutab nüüd ühist pöörd-χ² rada raim::chi2_quantile, eemaldades teise lahknevana χ² teostuse, nii et RAIM ja pariteedi spuufimisseire on oma läviväärtustes ühel nõul.

  • gravity-map-nav ühendati CLI dispetšeriga. Stsenaarium oli varem kättesaadav ainult API kaudu; nüüd edastatakse seda nagu iga teist stsenaariumi, kasutades kind=.

  • Dokumentatsiooni/arvu täpsus. README stsenaariumi liikide arvud on nüüd seotud väärtusega api::list_scenario_kinds().len() testiga scenario_count_doc_sync, nii et dokumenteeritud arv ei saa enam dispetšerist kõrvale triivida.

0.17.0 - 2026-06-14#

Lisatud#

  • Kaugkosmose ja Marsi PNT — avatud radiomeetriline navigatsioonimootor + GSE simulatsioon. Uus, täielikult lisanduv võimekuse telg Maal valideeritud tuuma peal (iga olemasolev Maa stsenaarium on baidi haaval identne — reprodutseeritavuse golden-failid läbivad muutmata ilma uuesti genereerimata). Lisab: mitme keha dünaamika tuuma (Body{mu, re, zonals, gravity, rotation, IAU-pole} Marsi GMM-3 tesseraalse gravitatsiooniga, IAU Marsiga kinnitatud keharaam, ühendatav EphemerisProvider koht, mikrosekundist väiksema täpsusega kaheosalised Juliuse kuupäevad ja TT↔TDB); radiomeetrilised vaadeldavad suurused (iteratiivne valguse levi aeg + Shapiro viivitus, kahe-/ühe-/kolmesuunaline Doppler ja kaugus Moyeri kahe haru lahendiga, koherentne transponderi pööre, regeneratiivne/PN kaugusmõõtmine CCSDS 414 järgi, Δ-DOR CCSDS 506 järgi, päikeseplasma/tropo/iono keskkonnad); CCSDS-TDM (503) parsimine + väljastamine; vähendatud dünaamikaga ruutjuur-infofilter RTN empiiriliste kiirendustega, kolmeolekuline pardakell ja Marsi takistusmudel; ühine ühesuunalise + kahesuunalise sulatushindaja; stsenaariumipind mars-pnt (releekonstellatsioon + LMO/ülekanne/ pind) CLI, Pythoni, WASM-i, MCP ja mänguväljaku kaudu; ning otsast lõpuni GSE tulemuslikkuse simulaator (geomeetria → lingieelarve → vaadeldavad suurused → SRIF → kovariatsioon). Valideerimistase — simulatsiooniga valideeritud: sünteetiline suletud ahelaga OD (Marsi-LMO ≈ 0,2 m) ja analüütiline enesekooskõla, kusjuures Päikese-keskne Marsi dünaamika on sõltumatult ristkontrollitud JPL DE440 vastu (xval/anise-mars-od, kerneliga piiratud: 137 m @ 1-päevane kaar, aus modelleerimata n-keha jääk). Teatatud kaugkosmose täpsused on simulatsiooni / kovariatsiooni kvaliteedinäitajad, mitte päris missiooni tulemused; päris DSN/ESTRACK jälgimisandmetega valideerimine jääb teekaardile. ANISE (MPL-2.0, edition-2024) on piiratud tööruumist välja jäetud ristkontrolli crate'iga, nii et litsentsivärav cargo deny ja MSRV-1.75 töö jäävad puutumata.
  • Agentuuritäpsed maapinnajäljed päris IERS-i Maa orientatsioonist. Stsenaarium ephemeris võtab valikulise välja eop_finals2000a — päris IERS-i faili finals2000A sisseehitatud keha — ja taandab maapinnajälje sellest interpoleeritud epohhikohase UT1−UTC ja poolusliikumise kaudu (sama EopSeries, mida kasutab precise_od), alistades nominaalsed skalaarid dut1_s/xp_arcsec/yp_arcsec. Andmed liiguvad stsenaariumi sees, nii et käitus jääb reprodutseeritavaks ega vaja failisüsteemi (see töötab WASM-i mänguväljakul). Lipp kshana --eop <finals2000A> põimib päris faili CLI-st stsenaariumi. Sulgeb asümmeetria, kus päris Maa orientatsiooni andmeid tarbis ainult precise_od.

Parandatud#

  • Kiiruse muutumise kiiruse raami kooskõla. Maajaam kujutatakse nüüd inertsiaalraami satelliidi taandamise täpse pöördfunktsiooni kaudu (frames::itrf_to_teme, võttes tagasi poolusliikumise ja sideerilise pöörde) poolusliikumisest teadmatu GMST pöörde asemel, nii et mõlemad otspunktid jagavad ühte raami. Mõju teatatud Dopplerile on valideerimispõhja all, kuid see eemaldab päris raami mittevastavuse ja „täpse“ üledeklareerimise allikas.
  • carrier_hz valideeritakse. Null või mittelõplik kandesagedus tagastab nüüd vea, selle asemel et vaikselt anda null Doppler (see oli teinud λ = c/kandja lõpmatuks), vastavalt olemasolevale kaitsele step_s.

0.16.0 - 2026-06-11#

Lisatud#

  • Jõumudeli valideerimine efemeriidi sobitamisega, ristvalideeritud päris agentuuri toodete vastu. Uus partii vähimruutude hindaja (src/precise_od.rs) variatsioonilise olekuüleminekumaatriksi ja kõrvalekallete redigeerimisega, mida juhib täielik jõumudel (PreciseForceModel: EGM2008 geopotentsiaal, kolmandad kehad, tahke + ookeani + atmosfääri looded ning empiirilised CPR/2-per-rev kiirendused), mida toidab päris IERS-i Maa orientatsiooni parser finals2000A. Valideeritud avaldatud etalonorbiitide vastu: Galileo MEO 13 cm järelsobituseni, ESA Swarm-A LEO ja LRO Kuu (selenotsentriline, GRAIL gravitatsioon, IAU-2015 kehaaraam — vähendatud dünaamikaga 6,6 m, ausalt üle 5 m sihtmärgi avatud teel; DE-klassi ANISE/DE440 tee, mis selleni jõuab, on tööruumist välja jäetud crate).
  • Stsenaarium spoof-detect — integreeritud mitmekihiline spuufimise detektor, mis ühendab epohhikohase RAIM pariteedi, AGC ja signaalikvaliteedi (SQM) seired ning liitotsuse, valideeritud avaldatud TEXBAT stsenaariumi parameetrite vastu (Humphreys et al., ION GNSS 2012), sealhulgas kandjaga joondatud raske juhtum.
  • Stsenaarium ephemeris — olek, raamid, maapinnajälg ja Doppler. Propageeri üks satelliit (TLE→SGP4 või analüütiline orbiit) ja väljasta sammu kohta inertsiaalne TEME ja GCRS olek (asend ja kiirus), Maaga seotud ITRF/ECEF asend, WGS-84 alamsatelliidi maapinnajälg (laiuskraad / pikkuskraad / kõrgus) ning topotsentriline asimuut / kõrgus / kaugus koos kauguse muutumise kiiruse ja Dopplerina maajaamast. Kättesaadav CLI-st, Pythonist, WASM-ist ja MCP serverist ning tarnitakse eelseadena „Maapinnajälg“ veebimänguväljakul, kus jälg joonistatakse päris maailmakaardi peale (Natural Earth 1:110m rannajooned, sisseehitatud — võrku ega välist sõltuvust pole).
  • CCSDS OEM eksport (--export-oem / export_oem = true) — kiirust kandev Orbit Ephemeris Message, mida tarbivad GMAT / Orekit / STK, pariteedis olemasolevate SP3 ja OMM eksportijatega.
  • Tahked, ookeani (FES2004) ja atmosfääri (Ray 2001 S2) Maa looded geopotentsiaalil (IERS Conventions peatükk 6), ühendatud jõumudelisse.
  • ARM64 wheel-id — PyPI ehitus toodab nüüd ka Linux aarch64 (manylinux_2_28), macOS arm64 ja Windows arm64 wheel-id.
  • Laiendatud tehniline aruanne (eeltrükk) on README-st lingitud ja JOSS-i artikkel tehtud esitatavaks (autori ORCID, CI-s PDF-iks kompileeritud iga muudatuse korral).

Muudetud#

  • Raamid valideeritud millimeetri täpsusega avaldatud Vallado vektorite vastu. TEME→PEF/ITRF taandamine, täielik CIO IAU 2006/2000A GCRS→ITRS ahel ja ECEF→geodeetilise WGS-84 teisendus on nüüd seotud Vallado et al. (AIAA 2006-6753) läbitöötatud näitega koos selle IERS EOP-ga, mitte ainult sisemise enesekooskõlaga.
  • Sõltumatud ajaskaalade ristkontrollid. ERA ning UTC/TAI/TT skaalad langevad teegiga hifitime kokku täpsusega < 1 µs ja DE440 planeetide efemeriid langeb kokku JPL Horizonsiga (Kuu/Päikese geotsentrilised asendid), mõlemad alati sisselülitatud CI väravatena.
  • Veebimänguväljak peidab kvaliteedinäitajate sakid, kui tulemusel pole ühtegi kvaliteedinäitaja rida, nii et ainult joonisega paketid (efemeriid, RAIM, spuufimine) avanevad oma joonisel — efemeriidi puhul maapinnajäljel — tühja tabeli asemel.
  • Mänguväljaku juhitud liugurid ja parameetri pühkimine töötavad nüüd efemeriidi / maapinnajälje stsenaariumi jaoks: selle nupud (jaama laiuskraad / pikkuskraad, ajasamm, kestus, UT1−UTC) on häälestatavad ja pühkimine saab joonistada ülelennu geomeetriat (maksimaalne kõrgus, tipp-Doppler, kõrgus, kiirus) mis tahes nende vastu — nt maksimaalne kõrgus vs jaama laiuskraad. Sakk Sweep kuvatakse nüüd ainult siis, kui stsenaarium on tõesti pühitav, nii et ükski pakett ei paku juhtelementi, mis ei joonista midagi.
  • Dokumenteeriti SGP4 lähendus DUT1 ≈ 0 GMST kutsekohas (≤ ~13″ pöördeviga, SGP4 enda mudelivea piires) ja värskendati faili CAPABILITY.md.

0.15.1 - 2026-06-09#

Lisatud#

  • JetBrainsi plugin Kshana — PNT simulator on nüüd avaldatud ja kinnitatud portaalis JetBrains Marketplace. README, kshana.dev ja levitusdokumendid lingivad sellele otse.

Parandatud#

  • MCP registri avaldamine õnnestub nüüd: server.json description ületas registri 100-märgilist piiri (HTTP 422). Seda lühendati ning serveri nimi (ja kujutise omandimärgend) joondati kanoonilise nimeruumiga io.github.ashfordeOU/kshana-mcp.
  • JetBrains Marketplace'i avaldamine õnnestub nüüd: CI laadis uuesti üles sama pluginaversiooni, mis oli käsitsi loetletud, mida Marketplace tagasi lükkab. Plugina versioon tõsteti tasemele 0.1.1 ja idempotentsuse kaitse käsitleb nüüd ka vastust „already contains version“ no-op õnnestumisena.
  • kshana.dev vahemälu kõrvaldamine: versioonitempliga style.css/app.js päringustringid järgivad väljalaset, nii et naasvad külastajad saavad alati praeguse ehituse.

0.15.0 - 2026-06-08#

Lisatud#

  • kshana-mcp — Kshana kui Model Context Protocol (MCP) server (mcp/kshana-mcp/). Iseseisev, tööruumist välja jäetud crate (SDK rmcp on edition 2024), mis avab valideeritud mootori tehisintellekti agentidele ja assistentidele — Cursor, JetBrains AI Assistant / Junie ja mis tahes MCP klient — stdio kaudu. Tööriistad: run_scenario, list_scenario_kinds, validate_scenario, export_sp3, export_omm, igaüks õhuke ümbris üle kshana::api.
  • JetBrains IDE plugin (ide/jetbrains/). Tee stsenaariumi .toml peal paremklõps → Run Kshana Scenario; kvaliteedinäitajad ja tulemuse JSON voogedastatakse Kshana tööriistaaknasse. Puhas platvormi Kotlini plugin, ühilduv iga JetBrains IDE-ga 2024,3+.
  • Avalik levitamine + iga väljalaske automaatne avaldamine mõlemale:
    • kshana-mcp portaali crates.io (cargo install kshana-mcp) kaudu failiga publish.yml.
    • kshana-mcp mitmearhitektuurilise OCI kujutisena portaalis ghcr.io (docker run ghcr.io/ashfordeou/kshana-mcp) uue faili mcp-publish.yml kaudu.
    • kshana-mcp ametlikku MCP registrisse GitHub OIDC kaudu (null saladust); registrikirje (server.json) kasutab OCI paketi tüüpi märgendiga kontrollitud omanikuga.
    • IDE plugin JetBrains Marketplace'i käsuga publishPlugin (märgiga piiratud, valikuline arendaja allkirjastamine) iga väljalaskemärgendi korral.

0.14.1 - 2026-06-08#

Lisatud#

  • Sõltumatu ANISE/SPICE tugisüsteemi ristvalideerimine (xval/anise-frames/). Iseseisev, tööruumist välja jäetud crate kontrollib kshana IAU 2006/2000A CIO taandust (kshana::cio::gcrs_to_itrs_matrix, GCRS→ITRS) ANISE (puhas-Rust NAIF/SPICE uusteostus) vastu, mis pöörab GCRF→ITRF93 JPL-i failist earth_latest_high_prec.bpc, kusjuures samad IERS finals2000A Maa orientatsiooni parameetrid antakse mõlemale poolele, kaheksal kvartaalsel epohhil 2020–2023. Kaks sõltumatut raami realiseeringut langevad kokku maksimaalse suhtelise pöördega 0,028″ — ≤ 0,86 m maapinnal, ≤ 0,93 m LEO-l, ≤ 3,6 m GNSS-i orbiidil, täites ammuse ROADMAP-i raami ristkontrolli „< 10 m“ suure varuga (see täiendab, kuid ei asenda, olemasolevaid bitt-bitilt SOFA/ERFA ankruid). Crate on isoleeritud, sest anise + hifitime on MPL-2.0 / edition-2024 ja ei tohi kunagi sattuda avaldatud kshana sõltuvusgraafi, selle faili Cargo.lock, litsentsiväravasse cargo deny ega MSRV ehitusse; ANISE on fikseeritud märkega default-features = false. Sisaldab binaari frame-xval (toob ~5 MB BPC, prindib tabeli, kirjutab report.{json,md}), kernelit/võrku ise vahelejätvat testiväravat ja valikulist ainult workflow_dispatch CI tööd (ei blokeeri kunagi haru main). Dokumenteeritud failis docs/VALIDATION.md (CIO rida) ja ROADMAP.md.

Parandatud#

  • Mobiilisõbralik mänguväljak. Parandati mänguväljaku .panel horisontaalne ülevool telefonidel (CSS-grid üksus, mille vaikeväärtus min-width: auto renderdus ~100 px laiemana kui vaateala) märkega min-width: 0 ja laiusega kaitstud juhtelementidega; kontrollitud puhtaks laiustel 360 / 390 / 414 / 768 px. Joondati nupud „Pin to compare“ / „Download report“ (võrdsed veerisekastid flex-reas). Suurendati käivitusnupud, liugurid, valikud ja navigatsioonilingid telefonidel ja puuteseadmetel umbes 44 px WCAG 2.5.5 / Apple-HIG puutesihtmärgi miinimumini, lauaarvuti suurus muutumatu.

0.14.0 - 2026-06-08#

Parandatud#

  • Töökindluse tugevdamine vaenuliku lahingutesti läbimisest. (1) sbas_protection_level lükkab nüüd tagasi mittelõpliku kõrguse/asimuudi/dispersiooni ja negatiivsed või mittelõplikud kovariatsiooni diagonaalid (peaaegu singulaarne geomeetria, mida väike σ skaleeris üles, võis varem libiseda absoluutse pivoti väravast läbi ja tagastada NaN VPL-i / absurdse HPL-i kehtiva Some kujul — vaikiv terviklikkuse tõrge). (2) Numbriline propageerija (propagate/propagate_dopri) ebaõnnestub suletult mittelõpliku algoleku korral, selle asemel et adaptiivset kontrollerit igavesti ringi keerutada. (3) DEM-i raku abifunktsioon ei kuku enam kokku ühe valimiga (1×N) ruudustiku korral. (4) lunar_look_angle asimuuti hoitakse rangelt vahemikus [0, 360). (5) SphericalHarmonicField::from_gfc lükkab tagasi mittefüüsikalise (NaN / mittepositiivse) GM/raadiuse.

Lisatud#

  • Binaar validation_report + väljalaskeartefakt: sõltuvusteta generaator, mis väljastab ühelehekülgse, printimisvalmis HTML valideerimiskokkuvõtte, mis indekseerib iga CI-s jõustatud valideerimise (SGP4 666/666, EGM2008, bitt-bitilt raamid, NIST Allan, IMU andmelehed, ARAIM/SBAS, 3-OS reprodutseeritavus, katvus) selle testi ja välise etaloni juurde. Väljalasketöövoog genereerib faili kshana-validation-summary.html ja lisab selle (SLSA päritoluga) igale märgendatud väljalaskele.
  • numpy-koostalituse pytest + wheel-i tugevdamine: tests/python/test_numpy_interop.py (käitatakse CI-s) pluss fikseeritud manylinux konteiner ja kontrollisamm auditwheel show wheel-i ehituses.
  • Õpetused ja haridus: docs/tutorials/ (kolm läbitöötatud õpetust, valdkonnakohased annoteeritud stsenaariumid, Tier-1/2/3 harjutused) koos failiga tests/tutorials.rs, mis seob iga tsiteeritud arvu elava mootori väljundiga.
  • Välised esitusartefaktid (paper/, notebooks/, submissions/): JOSS-i artikli mustand, kvant-versus-klassikaline märkmik ja esitusvalmis komplektid awesome-gnss / ESA Navipedia / NASA ASCL / ESA ESSR / ION/IAC jaoks, pluss FUNDING.yml — esitamise väliste sammude ettevalmistamine.
  • Maastikupõhine ja kombineeritud alternatiivse PNT navigatsioon (moodul altpnt): TERCOM/SITAN maastikusobitusnavigaator DEM-i kohal (.hgt laadija + sünteetilise testandmestiku generaator) ja kombineeritud gravitatsiooni + magnetilise (IGRF) + maastiku GPS-ita navigaator, esitatud stsenaariumi liikidena terrain-nav ja combined-altpnt. Valideeritud maastikusobituse koondumisega (teadaolev süstitud nihe taastati) ja piiratud kombineeritud filtri veaga GPS-ita akna jooksul.
  • LunaNet LANS geomeetria (lunar): nimetatud Kuu pinna asukohad (Apollo 11/15/16, Shackletoni serv) autoriteetsete selenograafiliste koordinaatidega, pinna vaatenurgad (az/el/kaugus), nähtavus/katvus ja asukoha DOP, valideeritud Kuu raadiuse, avaldatud asukohakoordinaatide ja radiaalse otse ülal oleva 90° kõrguse samasuse vastu.
  • Juhitud brauseri mänguväljak: juhitud režiimi liugurid, sakitatud väljundipaneel, esmakäivituse ringkäigu ülekate, parameetri pühkimise ja mitme käitluse ülekatte režiimid, sõltuvusteta canvas/SVG 3D orbiidivaade (orbiidipakett väljastab nüüd lisanduva eci_track), manustamise/iframe režiim ja allalaadimine HTML aruandena — igaühel on CI-s node ühiktestid.
  • Andmelehega valideeritud IMU veamudel (tests/imu_allan_spec.rs): ADIS16465/16488/16460 ARW/VRW/nihke ebastabiilsus taastatud sünteesitud Alani hälbest ja kontrollitud tootja spetsifikatsioonide vastu (NIST SP1065 / IEEE 952 tuvastus).
  • NIST SP1065 Alani hinnangute valideerimine (tests/allan_nist_sp1065_1000point.rs): neli hindajat taastoodavad avaldatud 1000-punktilised etalonhälbed ja tabeli 32 usaldusvahemikud.
  • SBAS / DO-229E kaitsetasemed, L1/L5 ionosfäärivaba ja DO-316 compliance-kaart (moodul sbas). sbas_protection_level moodustab kaalutud geomeetriamaatriksi iga satelliidi kõrgusest/asimuudist ning UDRE/GIVE/õhusõiduki/tropo veaeelarvest, pöörab normaalmaatriksi (ühine orbit::invert4) ja projitseerib dispersioonid HPL/VPL-i DO-229E K-tegurite kaudu (PA 6.0/5.33, NPA 6,18). iono_free_l1l5 lisab GPS L1/L5 ionosfäärivaba pseudovahemaa (IS-GPS-705, γ₁₅ = 1.79327), valideeritud tühistama mootori sõltumatu esimese järgu ionosfäärilise viivituse. do316_compliance_map jälgib DO-316/DO-229E nõudeid teostavate funktsioonideni. Valideeritud suletud kujuga K-teguri definitsioonide, numpy inv(GᵀG) etalongeomeetria ja kahe tee kovariatsiooni samasuse vastu; avaldatud-PL RTKLIB/gLAB standardi järgimise ristkontroll on dokumenteeritud ülevaatuse ootel failis docs/COMPLIANCE.md.
  • Täielik tesseraalne sfääriliste harmooniliste gravitatsioon — EGM2008 väli astme/järguni 70. Uus gravity_sh::SphericalHarmonicField hindab geopotentsiaali ja selle kiirendust Maaga seotud raamis täielikult normaliseeritud koefitsientidest C̄_nm, S̄_nm, kasutades stabiilset Holmes–Featherstone'i normaliseeritud Legendre'i rekurrentsi (denormaliseerimine voolaks sellel astmel üle). Tarnitavad koefitsiendid on NGA EGM2008 toode (avalik omand, ICGEM kaudu), kaasatud faili egm2008_data.rs ja taastoodetud bitt-bitilt skriptiga tools/gen_egm2008.py sissekirjutatud failist tools/egm2008_to70.gfc; iga ICGEM .gfc mudel laaditakse funktsiooniga from_gfc. Valideeritud kolme sõltumatu etaloni vastu: punktmassi kollaps (ainult C̄00 = −μr/|r|³), ainult tsonaalne väli, mis taastoodab olemasoleva forces::zonal_accel täpsusega ~1e-9, ning analüütiline kiirendus, mis langeb kokku otse summeeritud potentsiaali lõplike vahede gradiendiga täpsusega <1e-6.
  • Üldrelatiivsusteooria Lense–Thirringi (raamiveo) kiirendus (forces::lense_thirring_accel, IERS 2010 võrrand 10,12), gravitomagnetiline liige väljaspool olemasolevat Schwarzschildi parandust, ühendatud numbrilisse propageerijasse uue lipuga ForceModel::lense_thirring(). Valideeritud lineaarsena Maa nurkimpulsi suhtes ja 1–2 suurusjärku Schwarzschildi liikmest väiksemana, mis on LAGEOS / Gravity Probe B mõõtmiste režiim.
  • Tunnusjoon Propagator, mis ühendab analüütilised ja numbrilised orbiidipropageerijad. Numbriline Cowelli jõumudeli propageerija on nüüd SGP4 esmaklassiline kaaslane: uus tüüp NumericalPropagator (algolek + ForceModel + Tolerance + sammu kahekordistamise või Dormand–Prince'i Integrator valik) ja Sgp4 mõlemad teostavad propagator::Propagator, mille state_at(t_seconds) -> StateVector tagastab inertsiaalse TEME oleku SI ühikutes (m, m/s), nii et need on omavahel asendatavad tüübi Box<dyn Propagator> taga. SGP4 teostus on omase meetodi täpne km/min→SI teisendus (kontrollitud võrdsustestiga); numbriline teostus ületab tunnusjoone kaudu sama alammeetrilise täpse Kepleri värava, kaks adaptiivset draiverit langevad kokku ja PropagatorError toob esile aluseks oleva SGP4 koodi.

0.13.0 - 2026-06-08#

See väljalase sulgeb mootori suurima õigsuse lünga: Maa orientatsioon ja tugisüsteemi taandamine tehakse nüüd etalonteostuse tasemel (valideeritud bitt-bitilt ERFA/SOFA vastu), terviklikkuse pakk saab kahe konstellatsiooniga ARAIM-i päris GPS+Galileo TLE-del ning propageerimise, kvantandurite, Kuu/tsislunaarne ja geomagnetilised kihid süvenevad — koos tüpiseeritud Pythoni API, rikkalikuma brauserimänguväljaku ja kolme OS-i reprodutseeritavuse maatriksiga. Tipphetked:

  • Tugisüsteemid, bitt-bitilt. Täielik IAU 2000A ja 2000B nutatsioon, IAU 2006 pretsessioon, CIO-põhine (X, Y, s) IAU 2006/2000A GCRS↔ITRS taandamine, IERS poolusliikumine ja TEME→GCRS/ITRS väljundraamid — igaüks valideeritud bitt-bitilt ERFA/SOFA etalonrutiinide vastu.
  • Kahe konstellatsiooniga ARAIM (GPS + Galileo) päris TLE-del, HPL/VPL-i, Stanfordi diagrammi väljundi ja avatud failiga docs/ARAIM_REFERENCE.md.
  • Tsislunaarne PNT: Maa–Kuu CR3BP propageerija, MCI↔MCMF raamid, selenograafilised koordinaadid ja käivitatav LunaNet Kuu terviklikkuse stsenaarium.
  • Kvantandurdus: Coriolisi ja AC-Starki süstemaatilised vead külmaatom-interferomeetrile, triivi pühkimine ja valideerimine Freieri (2016) eelarve vastu.
  • IGRF-14 geomagnetilise põhivälja mudel, iseseisev ja valideeritud.
  • Tüpiseeritud Pythoni API (PyO3 RunOutput/ScenarioMeta, .data(), scenario_kinds, validate_toml, tüübitõmmised) CI wheel-i ehitusega, pluss esmaklassiline GCRS/ITRS propageerija väljund ja CCSDS OMM eksport.
  • Usaldusväärsus ja reprodutseeritavus: otsene SGP4 täpsuse võrdlus sõltumatu crate'iga sgp4, CI katvuse värav (~97 % ridu kataloogis src/) ja kolme OS-i (ubuntu/macos/windows) reprodutseeritavuse maatriks.

Muudetud#

  • Iga mänguväljaku joonis vastab nüüd saidi teemale. Kõik kaksteist SVG joonisegeneraatorit — tulemuse/holdover-i joonis (src/report.rs + src/chart.rs), Alani hälbe joonis (web/app.js) ja iga stsenaariumi joonis (src/hybrid.rs, jamming.rs, timetransfer.rs, spoof.rs, raim.rs Stanford + kättesaadavus, lunar.rs, ensemble.rs, sweep.rs, gnss_sim.rs, fusion/pack.rs, inertial/mod.rs) — kasutasid külmi meremehesinise paneele (#0e131b), külmhalle telgi/teksti ning kokkusobimatut punase/sinise/lilla seeriapaletti. Nüüd kasutavad need kõikjal sooja grafiitpaletti: paneelid --bg, soe ruudustik --line, sildid --fg, järjepideva seeriate jaotusega: kvant = mesikuldne (--accent-bright), klassikaline = soe merevaik (--partial), spets/piir = --crit. Ohutuskodeeringuga vaated säilitavad oma tähenduse: RAIM Stanfordi diagramm jääb roheliseks (kättesaadav) / merevaigukarva (eksitav) / punaseks (ohtlik) / summutatud teraseks (kättesaamatu) ning HPL/VPL loetakse kuld-/pronksina.
  • Joonised on nüüd salvestamisel/allalaadimisel ise end kirjeldavad. Mõlemad joonised põimivad oma pealkirja SVG-sse (Alani joonise pealkiri + alapealkiri „lower is better“ olid varem ainult HTML-i pildi ümber, nii et salvestatud pildil polnud allkirja) ja mõlemal on päritolu jalus — Kshana v<version> · <scenario-hash> · kshana.dev — nii et allalaaditud joonis seisab iseenesest ja jääb reprodutseeritavaks.
  • Iga joonis kannab nüüd päritolu jalust. Jalus — Kshana v<version> · scenario <hash> · kshana.dev — templitakse kesksest kõigi stsenaariumi liikide jaoks funktsioonis api::run_toml (varem oli see ainult holdover-i ja Alani joonistel), nii et iga salvestatud või allalaaditud pilt — mänguväljakult, CLI eksportist .chart.svg või HTML tulemuskaardilt — tuvastab oma versiooni, stsenaariumi sõrmejälje ja allika. Räsi on selguse mõttes märgitud scenario ja tuleb tulemuse väljalt scenario_hash, kui see on olemas, koos allikaräsi tagavaraga terviklikkuse/Kuu aruannete jaoks. Mis sõrmejälg on ja miks see seal on, on dokumenteeritud README jaotises „Output“ ja failis docs/PROVENANCE.md.

Parandatud#

  • raim::chi2_quantile ja RAIM Stanfordi müra valimivõtja on nüüd paanikavabad vahemikust väljas / mittelõplike sisendite korral (read_dir-järjekorrast sõltuv fuzz-leid uutest ARAIM stsenaariumidest). chi2_quantile kaitseb nüüd p/k nagu normal_quantile (tagastab piiriväärtuse assert!-paanika asemel) ja kättesaadavuse Stanfordi müra Normal piirab rangelt positiivse σ-ni — nii et terviklikkuse/ARAIM pakk ei paanitse kunagi mutatsiooniga või valesti seadistatud stsenaariumidel.

Lisatud#

  • Platvormideülene reprodutseeritavuse CI maatriks. Uus töö reproducibility-matrix käitab reprodutseeritavuse teste platvormidel ubuntu-latest, macos-latest ja windows-latest iga push'i korral. Kuna täielik tulemuse JSON ei ole OS-ide vahel baidi haaval identne (viimase ULP libm lahknevus), kinnitab see täpselt platvormist sõltumatut projektsiooni — sisendi sõrmejälge pluss väljundi kuju, fikseeritud stsenaariumi kohta SHA-256 golden-failidena kataloogis tests/golden/ uue faili tests/cross_platform_golden.rs poolt — koos numbriliste fikseeringutega (golden.rs, täpsusega 1e-6), SGP4 olekutega (sgp4_verification.rs, täpsusega 2e-5 km) ja sama protsessi determinismiga (determinism.rs). Koos tõestavad need platvormideülest reprodutseeritavust kolmel OS-il ilma täpse täisväljundi baidiräsi hapruseta. Jaotust dokumenteerib docs/REPRODUCIBILITY.md.
  • Koodikatvuse värav CI-s. Uus töö coverage käitab tööriista cargo-tarpaulin LLVM-i lähtekoodipõhise mootoriga, avaldab lcov aruande ehitusartefaktina ja jõustab ridade katvuse põhja kataloogil src/ (genereeritud andmetabelid, CLI sisenemispunkt, testid ja veebivarad välja arvatud). Mõõdetud ridade katvus on ~97 % kataloogis src/ (SGP4 ja kellamoodulid ≥95 %); värav on seatud tasemele 85 % — üle ≥80 % sihtmärgi ja mõõdetud väärtusest eemal, nii et see püüab regressioone ilma kõikumata. README-s on avaldatud katvuse märk.
  • SGP4/SDP4 otsevõrdlus sõltumatu crate'iga sgp4. Uus test (tests/sgp4_crate_comparison.rs) ristvalideerib Kshana propageerijat enimkasutatud Rust SGP4 teegi (neuromorphicsystems/sgp4, lisatud ainult testiks mõeldud dev-sõltuvusena) vastu samadel 666 AIAA 2006-6753 vektoritel. Kui mõlemat juhitakse vektorite kasutatud WGS72 gravitatsioonimudelil, langevad kaks sõltumatut teostust kokku alammikromeetri täpsusega Maa-lähedastel ja resonantsorbiitidel ning halvima juhu 4,12 mm täpsusega kõigis režiimides, mõlemad taastoodavad etalontabeli tcppver.out. Commit'itud võrdlustabel (tests/fixtures/sgp4_comparison.md, genereeritud uuesti käsuga KSHANA_REGEN_FIXTURES=1) jaotab tulemuse režiimide kaupa (LEO/MEO, kaugkosmos, ½-päeva ja 1-päeva resonants) ning märgib neli tahtlikult patoloogilist juhtu, mille crate konstruktsioonil tagasi lükkab. Elavad väited nõuavad mõlemalt täpsust 2e-5 km piires etalonist ja omavahelist kokkulangevust 4e-5 km piires — regressioonikaitse, mitte ühekordne. See on konkurentsivõimeline päritolu: õigsus sõltumatu koodibaasi vastu, mitte ainult staatilise tabeli vastu. (Crate'i vaikimisi from_elements kasutab WGS84 ja erineb seetõttu WGS72 etalonist ~km võrra — esitatud ausalt tabeli selgituses.)
  • CCSDS OMM eksport on nüüd otsast lõpuni kättesaadav. OMM kirjutajal (src/omm.rs) polnud varem CLI/API teed; stsenaariumi orbit keskmised elemendid saab nüüd avaldada CCSDS 502.0-B-2 OMM kataloogina — üks OMM KVN sõnum iga TLE-ga määratletud satelliidi kohta — käsuga kshana <orbit.toml> --export-omm out.omm või export_omm = true stsenaariumis kirjutab automaatselt faili <scenario>.omm (peegeldab olemasolevat --export-sp3). Iga sõnum kannab satelliidi tegelikku NORAD kataloogi numbrit, COSPAR rahvusvahelist tähist (YYYY-NNNP) ja epohhi (CCSDS aasta-päeva vorm), parsitud TLE reast 1 uue funktsiooniga tle::parse_tle_identity; nimerida muutub väärtuseks OBJECT_NAME (muidu OBJECT <id>). CREATION_DATE on stsenaariumi epohh, mitte seinakell, nii et väljund on reprodutseeritav. Uus API: api::export_omm / api::auto_export_omm, OmmFile::from_tle_block, OrbitClockScenario::to_omm_string. Sünteetiline Walkeri või RINEX stsenaarium (ilma TLE keskmiste elementideta) annab vea, mitte ei väljasta tühja faili. Valideeritud kaasasoleva 30 satelliidi gps-ops hetktõmmise vastu (tests/sp3_export_roundtrip.rs).
  • Interaktiivsed hõljutusnäidud mänguväljaku joonistel. Kursori liigutamine joonise kohal naelutab ristjoone lähima valimi külge ja näitab väärtuse kohtspikrit (web/hover.mjs, ühendatud failis web/app.js). Alani joonisel näitab see τ ja iga kella σ_y(τ); ajarea stsenaariumijoonistel (kella holdover, hinnangulise asukoha jälgimine, aja edastamine, hübriid-PNT, GNSS/INS) näitab see aega ja iga komplekti väärtust joonise enda ühikutes (ns / m / ps / kasutusaste), parsitud tulemusest, nii et näit vastab kõverale. Spetsialiseeritud diagrammid (RAIM, spuufimine, pühkimine) ülekatet ei saa. Joonised jäävad ise end kirjeldavateks blob-<img>-ideks — ülekate on läbipaistev ristjoon + kohtspikker peal, nii et allalaadimine/võrdlemine/eksport on puutumata. Koordinaadimatemaatika (lähim valim, kursor→joonise osa, murdjoone parsimine) on ühiktestitud (web/hover.test.mjs, käitatakse CI-s).
  • A/B võrdlusrežiim mänguväljakul. Kinnita mis tahes käitus lähtetasemena A, käivita teine stsenaarium ja need kuvatakse kõrvuti kvaliteedinäitajate deltatabeliga (holdover, ajastuse RMS/p95, kättesaadavus), mis värvib mõõdiku kohta võitja (web/compare.mjs, ühendatud failis web/app.js; deltaloogika ühiktestitud failis web/compare.test.mjs, käitatakse CI-s). Kõik väärtused lisatakse tekstina ja kõik joonised blob-<img> kaudu, nii et stsenaariumi stringist ei süstita kunagi midagi märgistusena.
  • Joonise allalaadimisnupud (SVG + PNG). Igal mänguväljaku joonisel on nüüd teemaga sobiv tööriistariba „Download SVG / PNG“ (web/chartdl.mjs, ühendatud failis web/app.js). SVG annab tagasi täpse, skaleeritava originaali; PNG rastriseerib sama ise end kirjeldava pildi 2x slaidide ja dokumentide jaoks. Failid nimetatakse oma päritoluga — kshana-<chart>-v<version>-<scenario-hash>.<ext> — ning failinime/suuruse loogika on ühiktestitud (web/chartdl.test.mjs, käitatakse CI-s).
  • IGRF-14 geomagnetilise põhivälja mudel (src/igrf.rs). IAGA standardne sfääriliste harmooniliste väli (aste/järk 13, epohh 2025,0 + sekulaarne muutus 2025–2030; koefitsiendid masinaga genereeritud ametlikust failist igrf14coeffs.txt skriptiga tools/gen_igrf.py faili src/igrf_data.rs, bitt-bitilt reprodutseeritavad). Schmidti normaliseeritud süntees tagastab välja vektori (põhi/ida/alla) ja tuletatud elemendid (deklinatsioon, inklinatsioon, horisontaalne/kogu intensiivsus) mis tahes geodeetilises asukohas/kuupäeval, pluss geomagnetilise pooluse ja dipoolitugevuse — magnetiline vaste gravitatsioonikaardi sobitajale alternatiivse PNT navigatsiooni jaoks. Valideeritud iseseisvalt: süntees langeb kokku täpse suletud kujuga kaldus dipooliga, täielik astme-13 analüütiline väli langeb kokku skalaarpotentsiaali lõplike vahedega, dipooli telg taastoodab tuntud geomagnetilise pooluse (~80,7°N, −72,7°E) ja ~29,7 µT tugevuse ning globaalne väli on füüsikaline.
  • Tüpiseeritud Pythoni sidumised (src/python.rs). Lisaks stringi sisse/stringi välja funktsioonidele run/run_full avab moodul nüüd tüpiseeritud klassi RunOutput (.json, .svg, .summary ja juurdepääsufunktsioon .data(), mis tagastab tulemuse parsituna natiivseks Pythoni sõnastikuks — JSON-i uuesti parsimist pole, NumPy-ga ümbritatav), pluss run_typed, scenario_kinds() (metaandmete sõnastike parsitud loend) ja validate_toml() (veateadete mittepaiskuv loend). Tarnib PEP 561 tüübitõmmise (kshana.pyi + py.typed) mypy/pyright/redaktorite jaoks ning kiirjuhendi docs/PYTHON_API.md. Olemasolevad funktsioonid on muutumatud.
  • Propageerijate esmaklassilised väljundraamid (src/orbit.rs Frame enum + position_in_frame + state_gcrs). Iga Propagator (Kepler, SGP4, RINEX, GLONASS, SP3) saab nüüd väljastada oma asendi raamis TEME, GCRS (≈ J2000) või ITRS (Maaga seotud) — TEME natiivselt, GCRS valideeritud TEME→GCRS taandamise kaudu, ITRS selle ahelduse kaudu IAU 2006/2000A CIO pöördesse gcrs_to_itrs — ning oma täieliku GCRS oleku (asend + kiirus) funktsiooniga state_gcrs. Kuupäevaga inertsiaalne väljund ei ole enam ainult TEME.
  • CIO-põhine IAU 2006/2000A taevasest maapealseks taandamine (src/cio.rs). Kaasaegne, pööripäevavaba ahel GCRS↔CIRS↔ITRS: CIP koordinaadid X, Y loetud IAU 2006/2000A nihke-pretsessiooni-nutatsiooni maatriksist (taaskasutades valideeritud FW pretsessiooni + 2000A nutatsiooni parandusega eraNut06a P03), 66-liikmeline CIO-asukoha s rida (eraS06, masinaga genereeritud ERFA etalonist skriptiga tools/gen_s06.py faili src/cio_s06_data.rs, bitt-bitilt reprodutseeritav), GCRS→CIRS maatriks (eraC2ixys), Maa pöördenurk (eraEra00) ning täielik GCRS→ITRS pööre (eraC2tcio, kombineeritud olemasoleva IERS poolusliikumisega). Valideeritud bitt-bitilt avaldatud eraXys06a (X=0.5791308482835292617e-3, Y=0.4020580099454020310e-4, s=-0.1220032294164579896e-7 juures JD_TT 2453736,5), eraC2ixys ja eraEra00 testvektorite vastu. CIO ahel ja vana pööripäeva/GMST-1982 TEME taandamine langevad kokku kuni nende dokumenteeritud ≈2·(pööripäevade võrrand) sideerilise aja konventsiooni erinevuseni. See on range taandamine, mida pööripäeva/GMST tee lähendas.
  • Täielik IAU 2000A nutatsioonirida (src/nutation.rs nutation_iau2000a, nutation_matrix_2000a). Täielik MHB2000 mudel — 678 Kuu-Päikese + 687 planeetide liiget — täpsusega < 0,1 mas, olemasoleva 77-liikmelise 2000B kärpe kõrval. Tabelid on masinaga genereeritud IAU SOFA / ERFA etalonist nut00a skriptiga tools/gen_nut00a.py faili src/nutation_iau2000a_data.rs (generaator taastoodab commit'itud faili bitt-bitilt) ning kogu rida — nii IERS-2003 kui MHB2000 põhiargumentide komplektid ja planeetide pikkused — on valideeritud bitt-bitilt avaldatud eraNut00a testvektori vastu (Δψ = −0.9630909107115518e-5, Δε = 0.4063239174001679e-4 juures JD_TT 2453736,5, täpsusega 1e-13 rad). Vaikimisi TEME→GCRS taandamine hoiab 2000B rida (~1 mas, ahela kiiruseraami pöörde lihtsustuse all); nutation_matrix_2000a avab < 0,1 mas kuupäevamaatriksi neile, kes seda vajavad.
  • Käivitatav Kuu terviklikkuse stsenaarium (kind = "lunar-integrity", scenarios/lunanet-araim.toml). Ühendab Kuu lõunapooluse kaitsetaseme läbimise (src/lunar.rs LunarScenario → south_pole_hpl_pass) stsenaariumikäitajaga JSON-iga LunarReport ja SVG HPL-i ajajoonisega, nii et tsislunaarse terviklikkuse juhtum on kättesaadav otse CLI-st. See toob lünga ausalt esile: 30 m LANS σ_URE korral ületab lõunapooluse HPL (≈ 260–450 m) 50 m häirepiiri (0 % kättesaadav) — Kuu PNT terviklikkus ei ole veel täidetud.
  • Kahe konstellatsiooniga ARAIM kättesaadavus päris GPS+Galileo TLE-del ja stsenaariumikäitaja ühendus (src/raim.rs, src/orbit.rs, scenarios/araim-gps-galileo.toml). Lisab funktsiooni araim_dual_constellation_availability (täiustatud ARAIM mootor — ühe satelliidi ja kogu konstellatsiooni tõrked — käitatuna ajaruudustikul) ja visible_positions_labeled ning ühendab selle käitajaga IntegrityScenario lipu araim_dual kaudu, nii et mitme-GNSS-i ARAIM uuring on kättesaadav otse TOML-ist. Päris andmetega test (tests/araim_dual_real_data.rs) kaasatud 2026-06-07 Celestraki GPS+Galileo hetktõmmistel näitab, et Galileo ühendamine tõstab ARAIM kättesaadavuse väärtuselt 0,21 väärtusele 0,67 nõudliku 12 m VAL juures (10,5→21,8 nähtavat satelliiti), samal ajal kui konstellatsioonitõrke-robustne režiim on kahe konstellatsiooniga põhimõtteliselt piiratud — kvantitatiivne põhjus, miks robustne kahe konstellatsiooniga terviklikkus kaldub kolmanda konstellatsiooni või SBAS-i poole. Aus jääk: arvuliselt täpne EU ARAIM TN tabeli A-3 taastootmine ühe versioonilukustatud epohhi vastu ja Zenodo testandmestiku kirje.
  • Maa–Kuu süsteemi piiratud ringikujuline kolme keha ülesanne (CR3BP) (src/cr3bp.rs). Uus tsislunaarse dünaamika tuum, mida kahe keha/SGP4 propageerijad pakkuda ei saa: pöörleva raami liikumisvõrrandid (cr3bp_accel), RK4 propageerija (propagate_cr3bp), Jacobi konstandi integraal (jacobi_constant) ja viis Lagrange'i punkti (lagrange_points). Valideeritud suletud kuju / avaldatud ankrute vastu: Maa–Kuu kollineaarsed punktid (L1 ≈ 0,83692, L2 ≈ 1,15568, L3 ≈ −1,00506), täpne võrdkülgne L4/L5 = (½−μ, ±√3/2, 0), kõik viis kinnitatud välja tasakaaluna, Jacobi säilib integraatori täpsusega propageerimisel ja tasapinnaväline taastav jõud, mis teeb halo/NRHO orbiidid võimalikuks. See on alus päris NRHO esitamiseks. Aus jääk: diferentsiaalselt korrigeeritud perioodilised 9:2 NRHO algtingimused, ekstsentriline/efemeriidi (DE) mudel ja denormaliseeritud teisendus faili src/lunar.rs selenotsentrilistesse raamidesse.
  • IERS poolusliikumine ja TEME→ITRF taandamine (src/frames.rs). Lisab funktsiooni polar_motion_matrix (SOFA iauPom00: W = Rx(−y_p)·Ry(−x_p)·Rz(s′) TIO asukohaga s′), pef_to_itrf / itrf_to_pef ja teme_to_itrf — GMST-põhine TEME→PEF pööre, millele järgneb poolusliikumine — täiendades ITRF-täpset Maaga seotud asendit ainult GMST-põhisele teme_to_ecef peale (poolusliikumine on orbiidiraadiusel kümnete meetrite suurune mõju). x_p/y_p on vaadeldud IERS suurused, mille kutsuja esitab. Aus jääk: täielikult CIO-põhine (X, Y, s) ahel ja ANISE/SPICE <10 m numbriline ristkontroll jäävad järgmisteks sammudeks.
  • Külmaatom-interferomeetri süstemaatilised vead, triivi pühkimine ja avaldatud seadmega valideerimine (src/inertial/quantum_imu.rs, docs/QUANTUM.md). Laiendab esimestest printsiipidest CAI kiirendusmõõturit kahe juhtiva deterministliku süstemaatilise veaga: Coriolisi/pöörlemise faas Φ_cor = 2·k_eff·v_⊥·Ω·T² (coriolis_phase, samaväärse kiirendusnihkega 2·Ω×v funktsiooni coriolis_accel_bias kaudu) ja AC-Starki valgusnihke faas Φ_LS = (δ_LS,1 − δ_LS,3)/Ω_eff (ac_stark_phase, mis tühistub π/2–π–π/2 sümmeetria tõttu konstantse nihke korral). Lisab funktsiooni cai_drift_sweep (hinnangulise asukoha triiv vs tsükli aeg — kvant-versus-klassikalise võrdluse tuum) ja valideerimistesti Freier et al. 2016 mobiilse gravimeetri vastu (arXiv:1512,05660): modelleeritud kvantprojektsioonimüra põhi jääb avaldatud 96 nm/s²/√Hz lühiajalisest mürast allapoole ja ~2 suurusjärgu piiresse. docs/QUANTUM.md uuendatud. Aus jääk: lainefrondi/kimbu suunamise süstemaatilised vead, vöötmitmetähenduslikkuse lahendamine, täpne CARIOQA-PMP / Boeing-AOSense lennutesti taastootmine (vajab avaldatud platvormi PSD-sid) ja JS mänguväljaku eelseade.
  • Tsislunaarne raami taandamine ja Kuu lõunapooluse terviklikkuse läbimine (src/lunar.rs). Laiendab Kuu ARAIM mootorit MCI↔MCMF (Kuukeskne inertsiaalne ↔ Kuuga seotud) pöördega (mci_to_mcmf / mcmf_to_mci, lihtsustatud keskmise pöörde mudel Kuu sideerilise kiirusega), selenograafilise laiuse/pikkuse/kõrgusega (mcmf_to_selenographic / selenographic_to_mcmf) ja funktsiooniga south_pole_hpl_pass — maandunud Artemise piirkonna vastuvõtja vastu esindava LunaNet releekomplekti 24 h läbimisel, mis kvantifitseerib terviklikkuse lünga ausalt: nominaalse 30 m LANS σ_URE korral on kaitsetase lõplik, kuid ületab 50 m pinnaoperatsioonide häirepiiri. Aus jääk: täpne LANS NRHO efemeriid (3-keha tsislunaarne orbiit), füüsikaline libratsioon / pretsesseeruv Kuu poolus (DE421/SPICE) ja LunaNet TOML stsenaarium jäävad järgmisteks sammudeks.
  • ARAIM terviklikkuse tugisõnum, Stanfordi diagrammi SVG ja avatud ARAIM etalon (src/raim.rs, docs/ARAIM_REFERENCE.md). Lisab selgesõnalise IntegritySupportMessage (σ_URA / σ_URE / b_nom / P_sat / P_const, WG-C GPS+Galileo etalonväärtustega ja teisendajatega .fault_priors() / .dual_fault_priors() ühe tõrke mootorisse araim_raim ja kogu konstellatsiooni mootorisse araim_dual_raim), iseseisva Stanfordi terviklikkuse diagrammi renderdaja stanford_svg (neli tsooni, piir PL = error, häirepiiri juhtjooned, üks värvikodeeritud marker epohhi kohta) ning docs/ARAIM_REFERENCE.md, mis dokumenteerib algoritmi, ISM-i, tõrkehüpoteesid, kaitsetaseme lepingu ja kahe konstellatsiooni kasu. Testid demonstreerivad geomeetria/liiasuse kasu (teise konstellatsiooni ühendamine pingutab ühe tõrke HPL-i) ja konstellatsioonitõrke taluvust (kahe konstellatsiooniga kasutaja elab üle terve konstellatsiooni kaotuse; ühe konstellatsiooniga kasutaja mitte). Aus jääk: EU ARAIM TN tabeli A-3 / 15–25 % kättesaadavuse arvu arvuline taastootmine versioonilukustatud päris TLE hetktõmmise vastu, Zenodo testandmestiku kirje ning araim_dual_raim ühendamine stsenaariumifaili käitajaga.
  • IAU 2000B nutatsioon ja täielik TEME→GCRS/J2000 inertsiaalne taandamine (src/nutation.rs). Lisab tõelise inertsiaalraami taandamise teise ja kolmanda osa tarnitud IAU 2006 pretsessiooni peale: 77-liikmeline Kuu-Päikese MHB2000 nutatsioonirida (nutation_iau2000b, standardne IAU 2000B kärbe täpsusega ~1 mas) Delaunay põhiargumentide ja SOFA iauNumat nutatsioonimaatriksiga ning Vallado AIAA-2006-6980 ahel TEME→TOD (pööripäevade võrrand) → TOD→MOD (nutatsioon) → MOD→GCRS (nihe-pretsessioon), esitatud kui teme_to_gcrs(r, v, jd_tt) / gcrs_to_teme. Rida, argumendid ja ühikukonstandid on ümber kirjutatud IAU SOFA / ERFA etalonist nut00b ja valideeritud bitt-bitilt avaldatud eraNut00b testvektori vastu (Δψ, Δε täpsusega 1e-13 rad). Aus jääk: täielik IAU 2000A 678-liikmeline rida (<0,1 mas), ANISE/SPICE <10 m numbriline ristkontroll ja poolusliikumine jäävad järgmisteks sammudeks (vt ROADMAP.md).

0.12.0 - 2026-06-06#

See väljalase toob Kshana esimese mitteanalüütilise orbiidipropageerija — Cowelli integraatori hierarhilise kuue häiringu jõumudeliga (kahe keha + J2–J6 tsonaalne + epohhijuhitud Päikese/Kuu kolmas keha + päikesekiirguse rõhk koonilise umbra/penumbra varjuga + atmosfääri takistus + Schwarzschildi post-Newtoni relativistlik parandus), mida juhib kahe adaptiivse integraatori valik (RK4 sammu kahekordistamine ja Dormand–Prince'i RK5(4) põimitud paar) — koos manöövri / trajektoori kavandamise kihiga (impulss- ja lõplikud põletused, Izzo Lamberti lahendaja ja porkchop-pühkimine), gravitatsioonikaardi sobitamise alt-PNT kihiga, mis taastab 60-minutilise GPS-ita raja alla 500 m täpsusega, partii + järjestikuse orbiidi määramise torujuhtmega ja täieliku 17-olekulise tihedalt seotud GNSS/INS UKF-iga kvant-CAI hinnangulise asukoha jälgimisega. Iga numbriline võimekus on seotud analüütilise tõe või käsitsi tuletatud suletud kujuga; vaikimisi väljalülitatud häiringud jätavad väljalastud golden-failid puutumata.

Lisatud#

  • Post-Newtoni (Schwarzschildi) relativistlik parandus (forces::relativistic_accel + propagator::ForceModel::relativity). Lisab domineeriva üldrelatiivsusteoorilise häiringu Maa-lähedasel orbiidil — relativistliku perigeumi nihke peamise tekitaja — IERS / Montenbruck–Gilli kujul β = γ = 1 a = (μ/c²r³)·{[4μ/r − v²]·r + 4(r·v)·v}. Nagu atmosfääri takistus on see kiirusest sõltuv, nii et see sõidab integraatori (r, v) parempoolsel küljel funktsiooni [accel_rv] kaudu, valikuline ja vaikimisi väljas. Valideeritud iseseisvalt: ringorbiidil taandub see suletud kujule 3μ²/(c²r³)·r̂ (puhtalt radiaalne ja väljapoole, väljaspool telge olevad komponendid täpselt null); selle suhe kahe keha omaga on õpikuline ≈1.9·10⁻⁹ LEO-l (signatuur μ/(c²r)); radiaalkiiruse juhtum langeb kokku käsitsi lihtsustatud kujuga μ(4μ + 3v²r)/(c²r³); ja propageerijas häirib see orbiiti seda hajutamata — suurpooltelg säilib selgelt alla meetri/päevas, mis on struktuurselt takistuse monotoonse lagunemise vastand. Kuna see on vaikimisi väljas, jäävad kahe keha/J2/tsonaalsed golden-failid puutumata. PPN-parameetri (β,γ) häälestamine ja Lense–Thirringi raamiveo liige jäävad järgmisteks sammudeks.
  • Koonilise umbra+penumbra varjumudel (forces::conical_shadow), mida nüüd kasutab päikesekiirguse rõhk. Täiendab kahendi umbrasilindri varjutust sujuvaks teguriks ν ∈ [0,1]: Päikest ja Maad modelleeritakse ketastena näiliste nurkraadiustega a = asin(R☉/d☉), b = asin(Rₑ/|r|) ja näiva keskpunktide vahega c, ning ν on üks miinus Päikese ketta osa, mille Maa ketas varjab (ringide läätsekujulise kattuvuse pindala) — täis päike korral c ≥ a+b, täielik umbra korral c ≤ b−a, rõngasvarjutus korral c ≤ a−b ja vahepeal pidev penumbra. srp_accel kasutab seda nüüd, nii et SRP jõud väheneb varjutuse kaudu sujuvalt, mitte ei lülitu sisse/välja. Lisab IAU nominaalse forces::SOLAR_RADIUS. Valideeritud iseseisvalt: ν = 1 täis päikesel ja ν = 0 sügaval umbras (täpne), sujuv monotoonne penumbra (ν tõuseb 0 → ~½ juures c = b → 1 üle vahemiku [b−a, b+a]) ja koonuseline penumbra ulatub umbrasilindrist kaugemale (punkt, mida kahend-silinder nimetab täielikult valgustatuks, on koonusele 0 < ν < 1). Lihtsam cylindrical_shadow jääb kättesaadavaks; päikese serva tumenemine ja lapiku Maa vari jäävad järgmisteks sammudeks.
  • Dormand–Prince'i RK5(4) põimitud integraator (integrator::dopri54_step / integrator::integrate_dopri + propagator::propagate_dopri). Lisab standardse Dormand–Prince'i (1980) põimitud Butcheri tabeli paari olemasoleva RK4 sammu kahekordistamise draiveri kõrvale: seitse FSAL etappi annavad 5. järku lahendi ja 4. järku veahinnangu ühest hindamiskomplektist (7 vs 11 funktsioonikutset sammu kohta), odavam lokaalse vea hinnang. Adaptiivne draiver taaskasutab sama RMS vea normi ja sammukontrollerit 0.9·(1/err)^(1/5), nii et see on otseasendaja; propagator::propagate_dopri avab selle orbiidi jõumudelil. Valideeritud iseseisvalt: põimitud veahinnang on O(h⁵) (sammu poolitamine vähendab seda ~32×); DP5(4) integreerib y' = y väärtuseni e ja harmoonilise ostsillaatori 50 perioodi jooksul energiat säilitades täpsusega <1e-6; see jõuab samale lõpp-punktile samal tolerantsil vähemate funktsioonihinnangutega kui sammu kahekordistamine (täpsust ohverdamata); ning propagate_dopri läbib sama analüütilise tõe värava kui RK4 tee — alammeetriline täpne universaalmuutuja Kepleri lahendi suhtes 24 h LEO orbiidil — samal ajal kui kaks draiverit langevad kokku täpsusega <1 m J2..J6 orbiidil (suletud kuju puudub). Kõrgemad põimitud paarid (RKF7(8) / DOP853) jäävad järgmiseks sammuks.
  • Atmosfääri takistus ühendatud propageerijasse tema esimese kiirusest sõltuva jõuna (forces::atmospheric_density + forces::drag_accel + propagator::ForceModel::drag). Lisab Vallado tabeli 8-4 tükiti eksponentsiaalse atmosfääri ρ = ρ0·exp(−(h−h0)/H) (28 riba merepinnast üle 1000 km, pinna all piiratud) ja ruutkõlbulise takistuse a = −½ · ρ(h) · (C_D·A/m) · |v_rel| · v_rel kaaspöörleva atmosfääri v_rel = v − ωₑ ẑ × r suhtes (forces::EARTH_ROTATION_RATE = 7.2921151467e-5). Kuna takistus sõltub kiirusest, saab ForceModel uue funktsiooni accel_rv(t, r, v) ja integraatori parempool edastab nüüd kiiruse (f(t,[r;v]) = [v; a(t,r,v)]); ainult asendist sõltuv accel_at on muutumatu, nii et konservatiivsed liikmed ja golden-failid on puutumata. Valideeritud iseseisvalt: tihedus ankurdub merepinna väärtusel 1,225 kg/m³, on pinna all piiratud, väheneb monotoonselt läbi LEO, asub 400 km juures päikese keskmises ~1e-12 kg/m³ vahemikus ning selle taastatud kohalik skaalakõrgus (≈ 58 km juures 400 km) on füüsikaline; takistus vastandub kaaspöörleva suhtelise kiirusega ~2e-6 m/s² LEO suurusjärgus väärtuse C_D·A/m = 0.02 m²/kg korral; ja — võtmesignatuur — takistus on hajutav: 300 km orbiit kaotab erienergiat monotoonselt ja selle suurpooltelg laguneb piiratult ~km/päevas, samal ajal kui vaakumi lähtetase säilitab energia täpsusega <1e-9. NRLMSISE-00 termosfääri tihedus (< 5 % takistustiheduse klausel) jääb järgmiseks sammuks.
  • Päikesekiirguse rõhk ühendatud epohhijuhitult propageerija jõumudelisse (forces::srp_accel + propagator::ForceModel::solar_radiation). Lisab kahurikuuli SRP mudeli a = ν · P☉ · cᵣ · (A/m) · (AU/d)² · d̂ silindrilise varju varjutusteguriga (forces::cylindrical_shadow, ν ∈ {0 1}): kiirgusrõhk P☉ = Φ☉/c kaasaegsest 1361 W/m² kogu päikesekiirguse vooluhulgast (≈ 4,5398·10⁻⁶ N/m²), pöördruut-voo (AU/d)² langus ja radiaalne tõuge Päikesest eemale. See sõidab sama epohhijuhitud parempoolega kui kolmas keha, võttes ephem Päikese ühe korra edasiliikunud epohhil epoch_jd_tt + t/86400, mida jagavad Päikese kolmas keha ja SRP. Komponeeritav: with_zonals_j2_j6().third_body(true, true, epoch).solar_radiation(1.5, 0.02). Valideeritud iseseisvalt käsitsi tuletatud signatuuride vastu: 1-AU kiirgusrõhk fikseerub õpikulisele ≈ 4,5398·10⁻⁶ N/m²; täielikult valgustatud LEO satelliidi SRP on bitt-bitilt identne kahurikuuli valemiga, osutab Päikesest eemale ja asub ~1,36·10⁻⁷ m/s² vahemikus cᵣ = 1,5, A/m = 0,02 m²/kg korral; Päikese kauguse kahekordistamine neljandikustab suuruse (pöördruut); silindriline vari varjutab ainult umbrasilindrit (Päikesest eemal ja ühe Maa raadiuse sees Maa–Päikese joonest) ja annab varjutuses täpselt nulli SRP; ning propageerijas häirib SRP LEO orbiiti väikese piiratud määra võrra, mis skaleerub ~lineaarselt A/m-iga — samal ajal kui häireteta mudel jääb bitt-bitilt ajast sõltumatuks, jättes kahe keha/J2/tsonaalsed golden-failid puutumata. Koonuseline umbra/penumbra (sujuv ν ∈ [0 1]), atmosfääri takistus ning väline GMAT/Orekit ristvalideerimine jäävad järgmisteks sammudeks.
  • Epohhijuhitud Päikese/Kuu kolmas keha ühendatud ajas muutuvasse propageerija parempoolde (propagator::ForceModel::third_body / accel_at). Kolmanda keha häiring ei ole enam eraldiseisev jõuliige — Cowelli propageerija integreerib seda nüüd tõeliselt ajas muutuva jõuna: iga parempoole hindamine võtab ephem Päikese/Kuu asendid edasiliikunud epohhil epoch_jd_tt + t/86400 (taaskasutades precession::julian_centuries_tt päeva↔sajandi teisenduseks), nii et häirijad liiguvad integreerimise ajal mööda oma orbiite, mitte ei ole algushetkel külmutatud. Komponeeritav mis tahes gravitatsioonimudeliga (ForceModel::with_zonals_j2_j6().third_body(true, true, epoch)). Valideeritud iseseisvalt: parempoole Päikese liige on bitt-bitilt identne funktsiooniga third_body_accel, mis on hinnatud efemeriidi asendil selle hetke jaoks nii t = 0 kui t = 1 day korral (tõestades täpselt seose 86400 s ↔ 1 päev ↔ 1/36525 sajandit), häirija liigub proovide vahel ~2,6·10⁹ m/päevas (ei ole külmutatud), hetkelised LEO loodete suurused tabavad õpikulisi ~5·10⁻⁷ m/s² (Päike) ja ~1,1·10⁻⁶ m/s² (Kuu, ≈ 2× Päike) vahemikke, iga keha häirib mõõdetavalt päevapikkust trajektoori, jäädes piiratuks, ja sama algolek, mis on propageeritud veerandaasta kaugusel epohhidel, annab erineva trajektoori (loodete telg pöörleb 90°) — samal ajal kui mudel, kus kumbagi keha pole lubatud, on bitt-bitilt ajast sõltumatu, jättes kahe keha/J2/tsonaalsed golden-failid puutumata. DE-klassi efemeriidi täpsus ja väline GMAT/Orekit ristvalideerimine jäävad järgmisteks sammudeks.
  • Madala täpsusega Kuu efemeriid (ephem::moon_position), mis täiendab Päikese/Kuu kolmanda keha paari. Lisab Montenbruck & Gilli madala täpsusega Kuu rea (§3.3.2) Päikese mudeli kõrvale, nii et kehast sõltumatut forces::third_body_accel saab nüüd juhtida kummagi taevakehaga ilma välise DE/SPK kerneli vajaduseta. Valideeritud iseseisvalt käsitsi tuletatud Kuu signatuuride vastu: geotsentriline kaugus jääb kuu jooksul päris perigeumi/apogeumi ümbriku (~356 500–406 700 km) sisse ja selle kuukeskmine taastab ~384 400 km suurpooltelje; ekliptikaline laius ei ületa kunagi ~5,3° Kuu orbiidi kaldenurka (kontrollitud projitseerimisega ekliptika poolusele ekvatoriaalkoordinaatides, valideerides laiusrea ja kaldenurga pöörde koos); Kuu suund naaseb 1° piires pärast ühte sideerilist kuud (27,3217 d) ja selle ööpäevane liikumine jääb füüsikalisse 12–15°/päevas vahemikku; ning Kuu kolmanda keha häiring LEO satelliidile on õpikulise ~1,1·10⁻⁶ m/s² suurusega (≈ kaks korda Päikese oma). DE-klassi asenditäpsus, atmosfääri takistus ja SRP jäävad järgmisteks sammudeks.
  • Kolmanda keha (Päikese) gravitatsioon sisseehitatud madala täpsusega efemeriidiga (forces::third_body_accel, ephem::sun_position). Lisab jõumudelisse kolmanda keha häiringu: a = GM₃·((s−r)/|s−r|³ − s/|s|³) (otsene külgetõmme miinus kaudne liige, mille geotsentriline raam peab lahutama), kusjuures Päikese asendi annab uue mooduli ephem Montenbruck & Gilli madala täpsusega analüütiline rida — välist DE/SPK kernelit pole vaja madala täpsusega käituse jaoks. Valideeritud iseseisvalt: kiirendus langeb kokku oma häiriva potentsiaali täpse gradiendiga (third_body_potential), häiring kaob geotsentris ja on õpikulise ~5·10⁻⁷ m/s² suurusega LEO satelliidil ning Päikese efemeriid tabab käsitsi tuletatud J2000 ankruid — periheeli kaugus ≈ 1,471·10¹¹ m, deklinatsioon ≈ −23° detsembri pööripäeva lähedal, näiv liikumine ≈ 1°/päevas (≈ 90° veerandaasta kohta) ja kaugus, mis jääb terve aasta jooksul Maa orbiidi 0,983–1,017 AU ümbrikusse. Annab numbrilise propageerija verstaposti jõumudeli sammu kolmanda keha poole (Kuu tuuakse ülaltoodud kaaskirjes); DE-klassi asenditäpsus, atmosfääri takistus ja SRP jäävad järgmisteks sammudeks.
  • J2–J6 tsonaalsete harmooniliste jõumudel (forces::zonal_accel / zonal_potential). Laiendab Cowelli propageerija jõumudelit J2-st kaugemale täieliku Maa tsonaalse väljani kuni astmeni 6 (standardne avaldatud EGM-96 mittenormaliseeritud J2..J6), ühendatud propageerijasse kui ForceModel::with_zonals_j2_j6(). Kiirendus on tsonaalse häiriva potentsiaali R(r) = −(μ/r)·Σ Jₙ(Re/r)ⁿPₙ(z/r) täpne analüütiline gradient (Legendre'i polünoomid ülespoole rekurrentsiga), valideeritud kolmel sõltumatul viisil: see taandub 666 vektoriga valideeritud funktsiooniks j2_accel masintäpsusega, kui piirdutakse [J2]-ga; see langeb kokku oma potentsiaali numbrilise gradiendiga kogu J2..J6 välja ulatuses (konservatiivse välja kuldstandardi kontroll); ning paaritu J3 versus paaris J2/J4..J6 liikmed näitavad oma iseloomulikku põhja–lõuna (anti)sümmeetriat teisenduse z → −z all — pirnikujuline asümmeetria. Propageeritud J2..J6 orbiit säilitab koguenergia (kineetiline + tsentraalne + tsonaalne potentsiaal) täpsusega ~1e-8 päeva jooksul ja häirib ainult J2 orbiiti väikese nullist erineva määra võrra. See annab numbrilise propageerija verstaposti sammu 2 („J2–J6 tsonaalsed harmoonilised“); kõrge astme EGM tesseraalne väli, takistus, SRP, kolmas keha ja väline GMAT/Orekit ristvalideerimine jäävad järgmisteks sammudeks.
  • Numbriline (Cowelli) orbiidipropageerija (src/propagator.rs). Kshana esimene mitteanalüütiline propageerija (ülejäänud orbiidipakk on analüütiline SGP4/SDP4): see ühendab kahe keha + J2 jõumudeli (src/forces.rs) adaptiivse sammu kahekordistamise RK4 draiveriga (src/integrator.rs) kui f(t,[r;v]) = [v; a(r)], lülitiga ForceModel. Valideeritud analüütilise tõe vastu, mis on tugevam kui numbriline ristitööriist oleks: häirimata orbiit taastoodab täpse universaalmuutuja Kepleri lahendi alammeetri täpsusega 24-tunnisel LEO orbiidil (rangem värav kui verstaposti sõnastatud „võrdluses numbrilise etaloniga < 10 m“), erienergia ja nurkimpulss säilivad ~1e-9 suhtelise täpsusega ning J2 sõlme regressioon taastoodab suletud kuju j2_secular_rates esimese järgu teooriani (2 % piires, O(J2²) jääk). Lisab ka funktsiooni solve_kepler_checked, Newtoni lahendaja Kepleri võrrandile, mis tagastab Err vaikselt valesti vastamise asemel, kui see ei koondu piiratud iteratsioonieelarve jooksul (periapsise-lähedane e = 0.999 juhtum). Aus ulatus: jõumudel on ainult kahe keha + J2 — kõrge astme EGM tesseraalne väli (200×200 + laadija), takistus (NRLMSISE-00), SRP, kolmanda keha jõud ja väline GMAT/Orekit ristvalideerimine jäävad järgmisteks sammudeks.
  • 60-minutiline GPS-ita gravitatsioonikaardi sobitamine täpsusega < 500 m (run_gps_denied_gravity_nav). Süvendab alt-PNT kihti ESA NAVISP Quantum Wayfarer valideerimissihtmärgini: sõiduk lendab ~700 km rada terve tunni GNSS-i katkestuse jooksul — selle inertsiaallahend triivib ≈ 70 km peale — ning külmaatom-gravimeeter pluss hierarhiline jämedalt-täpseni osakeste/ruudustiku sobitaja taastab konstantse INS-i triivi ≈ 145 m täpsusega (< 500 m), > 480× vähendus. Gravimeetri tegelik valgemüra põhi süstitakse deterministliku algväärtusega (seed) jadana, nii et sobitajale ei anta kunagi müravaba tõde, ent käitus on täpselt reprodutseeritav (kontrollitud bitt-bitilt identne ning stabiilne mõne meetri piires müra realisatsioonide vahel). Regressioonitaseme test näitab, et täpsustamine on vajalik — üksik jäme ruudustik jääb pidama ~2 km juures, ainult kolmeastmeline täpsustamine murrab 500 m tõkke. Uus commit'itud stsenaarium scenarios/gps-denied-gravity-nav.toml. Rida docs/CAPABILITY.md jääb ausalt osaliseks (kaasasolevat EGM2008 kaarti endiselt pole), tema tõendid on uuendatud 60-min < 500 m tulemuseni. Aus ulatus on muutumatu: madala astme sfääriliste harmooniliste väli + sünteetilised mascon'id; Monte Carlo kaardi esitusvea realisatsioonide üle on järgmine samm.
  • Ülehinnangute register + regressioonikaitse (docs/CLAIMS-VS-REALITY.md, tests/no_overclaims.rs). Sulgeb aususe/väidete tagasivõtmise raja: neliteist ülehinnangut, mille varasem audit kataloogis (OC-0…OC-13), on nüüd kõik GREEN — tugevad väited (OC-0 seotud kell+asend Kalman, OC-2 segamise J/S→C/N₀→lukustuse kadu, OC-7 Mach–Zehnderi CAI füüsika, OC-8 ARAIM HPL/VPL) on asendatud tarnitud, testitud võimekustega, mitte pehmendatud sõnastusega, ning ülejäänud read on koodiga sobitamiseks väidetest tagasi võetud. Uus CI test skannib elavaid avalikke pindu (README, CAPABILITY, GLOSSARY, web/) ja ebaõnnestub, kui mõni taganenud paljas ülehinnangufraas ilmub uuesti hoiatuseta, nii et GREEN rida ei saa vaikselt regresseeruda. Käitusekohane „terviklikkuse“ kvaliteedinäitaja jääb ausalt märgitud filtri enesekooskõlaks (mitte lennunduse terviklikkuseks); päris ARAIM HPL/VPL on esitatud eraldi, nii et neid ei aeta kunagi segamini.
  • Gravitatsioonikaardi sobitamise navigatsioon (GPS-ita alt-PNT). Uus src/gravimeter.rs lisab alt-PNT võimekuse kihi, mida ESA NAVISP Quantum Wayfarer / QT-CCI gravitatsioonikaardi sobitamise uuringud nõuavad: külmaatom-gravimeetri mõõtmismudel, mille valgemüra põhi on tuletatud CAI kiirendusmõõturi ASD-st (σ = ASD/√τ); madala astme, täielikult normaliseeritud sfääriliste harmooniliste gravitatsiooni anomaalia väli (valideeritud suletud kujuga Legendre'i funktsioonide P̄₁₁=√3·cosφ, P̄₂₀=(√5/2)(3sin²φ−1), P̄₂₂=(√15/2)cos²φ ja käsitsi tuletatud ühe liikmega anomaalia 1,897 mGal vastu) pluss sünteetilised mascon'id kõrge astme kohalike tunnuste jaoks; ning gravitatsioonikaardi sobitamise osakestefilter (komponeerib mapmatch + particle_filter), mis taastab GPS-ita raja läbilennatud anomaaliate jadast. Commit'itud NAVISP etalonkatse (scenarios/gravity-map-nav.toml) vähendab ~73 km vaba inertsiaalse triivi mõne kilomeetrini. Aus ulatus: Kshana ei paku kaasa täielikku EGM2008 2190° koefitsientide komplekti — väli on madala astme + mascon'id, mitte päris kõrge eraldusvõimega kaart; EGM/EIGEN laadija, magnetkaart, maastikuabiga SLAM ja stsenaariumimootori kind= ühendus SVG triivijoonisega jäävad järgmisteks sammudeks. docs/CAPABILITY.md „Gravity-map / alt-PNT navigation“ → osaline.
  • Manöövrite modelleerimise ja trajektoori kavandamise sillapea. Uus src/maneuver.rs lisab esimese trajektoori kavandamise kihi SGP4 kohal: impulss-ΔV sõlmed, mis rakendavad kiiruse katkevust ja kannavad edasi 6×6 kovariatsiooni (deterministlik põletus ⇒ ühikmaatriksist olekuüleminek; täitmisvea kovariatsioon pöördub põletusraamist — ECI või LVLH — kiirusplokki), lõpliku põletuse integreerimise (konstantne tõuge põletuskaarel massiga olekuna), mille saavutatud ΔV on kontrollitud suletud kujuga Tsiolkovski raketivõrrandi vastu paremini kui 0,01 %, Izzo-2015 ühe tiirlusega Lamberti lahendaja (r1, r2, lennuaeg ⇒ v1, v2), täpse universaalmuutuja Kepleri propageerija (kahe keha tõde) ja porkchop pühkimise, mis kujutab stardiepohhi × saabumisepohhi ruudustiku starti C3 ja saabumise V∞ peale, väljastatuna 2-D JSON-massiivina brauseri isojoonte renderdamiseks. Valideerimine on iseseisev ja tugevam kui õpetuslik väljavõte: iga Lamberti väljund käib läbi Kepleri propageerija edasi-tagasi (see peab maanduma tagasi punkti r2) ja porkchopi miinimum kontrollitakse analüütilise Hohmanni ülekande C3 põhja vastu kahe tasapinnalise ringorbiidi jaoks. Kshana positsioneerib selle tulemuslikkuse simulatsiooni kihina GMAT/Orekit kohal, mitte asendajana (mitme tiirlusega harud ja päris planeetide efemeriid jäävad ulatusest välja). Kümme testi.
  • Täielik 17-olekuline tihedalt seotud GNSS/INS UKF kvant-CAI hinnangulise asukoha jälgimisega. Uus src/fusion/tightly_coupled17.rs kannab täielikku inertsiaalnavigatsiooni olekut, mida tihedalt seotud filter hindab — [position, velocity, attitude-error, accelerometer bias, gyro bias, clock bias, clock drift] (17 olekut) — propageeritud mõõdetud erijõu ja nurkkiirusega juhitud strapdown-mehhaniseerimise kaudu, väikese nurga C ≈ I + [ψ×] keha→inertsiaal pöördega, nii et orientatsiooni viga põhjustab horisontaalset kiirendust (standardne INS-i kalde sidestus). GNSS-i katkestuse ajal veereb see ainult IMU peal; kiiruse juhusliku käigu protsessimüra on külmaatom-interferomeetri kiirendusmõõturi tuletatud q_va (crate::inertial::quantum_imu), nii et hinnangulise asukoha triiv on kvantanduriga piiratud — 120-sekundiline katkestus jääb piiratuks mõne sajani meetrini, versus kilomeetrid, milleni jõuaks navigatsioonikvaliteediga vaba INS. Pseudovahemaa/kauguse muutumise kiiruse uuendus käib läbi ühise unscented Kalmani filtri (α = 1 hästi tingimustatud kaaludeks sellel olekusuurusel). Viis testi: mõõtmismudeli samasus, ideaalse IMU konstantkiirusega integreerimine, GNSS-i abistamine, kiirendusmõõturi nihke hindamine ja CAI-ga piiratud 120-s katkestuse etalonkatse.

0.11.0 - 2026-06-05#

Muudetud#

  • Aus raamistus kvantpositsioneerimisele. Põhikirjeldus on nüüd järjepidevalt „PNT-resilience simulator with quantum-sensor performance models“ README sloganis, tsiteerimisreas, failis CITATION.cff (pealkiri + kokkuvõte) ja bännerigraafikas — asendades lõdvema „hybrid quantum/classical PNT simulator“ turundusformulatsiooni. README jaotis What it is / is not saab selgesõnalise „It is not (yet)“ ulatuse väite (mitte esimestest printsiipidest aatom-interferomeetria füüsikamootor, mitte GNSS vastuvõtja/PVT lahendaja, mitte missioonikavandamise tööriist) ning uus tipptaseme ROADMAP.md teeb kvantfüüsika kihist P2 kirje (Mach–Zehnderi CAI faas, projektsioonimüra, vibratsioonitensor), et lugejad teaksid, et esimeste printsiipide füüsika on ulatusse võetud ja tulemas, mitte hüljatud. Käitumise ega API muudatust pole.

Lisatud#

  • Konstellatsioonikavandi kompromissiuuring: Walkeri kavandi pühkimine Pareto frondiga, taaskülastusaja JSON ja alamkilomeetriline Walkeri valemi valideerimine. src/walker.rs saab funktsiooni walker_design_sweep, mis käitab ruudustikku planes × sats_per_plane (nt 3×3 kompromiss) fikseeritud kaldenurgal ja tabuleerib iga kavandi kohta katvuse osa, halvima juhu PDOP-i ning maksimaalse/keskmise taaskülastuse vahe; pareto_front märgib mittedomineeritud kavandid (vähem satelliite, rohkem katvust, madalam PDOP, lühem taaskülastus) ning WalkerDesignReport::to_json serialiseerib rakud ja Pareto fronti — sh taaskülastusaja väljad — JSON-ina. Uus valideerimine seob generaatori Walkeri valemiga i:T/P/F: samas pesas olevad satelliidid naaberorbiiditasandites kujutuvad üksteisele täpse pöördega R_z(2π/P) täpsusega alla 1 km terve 24 h SGP4 propageerimise jooksul (J2 lühiperioodiline hingamine on ühisrežiim ja tühistub), ning orbiiditasandisisesed pesad on kinnitatud keskmiselt vahega 2π/S. Toetub commit'itud päris Celestraki gps-ops 2021-07-28 hetktõmmisele (scenarios/orbit-sgp4-gps.toml, mida kasutavad stsenaariumikatvuse ja SP3 edasi-tagasi testid).
  • Täiustatud aja ja sageduse edastamine: TWSTFT, GNSS ühisvaade, PPP, optiline, IEEE-1139 astmeseaduse sobitus ja kellaansambel. Uus src/timetransfer_adv.rs ehitab operatiivsed edastusmeetodid tarnitud Sagnaci/ühisvaate suletud kujude ja Alani stabiilsuse tööriistade peale. twstft_sagnac annab kahesuunalise satelliitaja ja -sageduse edastamise Sagnaci parandi kolmehüppelise silmussummana, mis võrdub BIPM suletud kujuga Δt = 2·A·ω_E/c² täpselt (ristkontrollitud sõltumatu twstft_sagnac_bipm vastu); run_twstft väljastab ühepäevase T_A − T_B rea ja selle TDEV. gnss_common_view_series võtab kahe sünteetilise maajaama ühe vahe, nii et satelliidi kell tühistub. iono_free_combination + ppp_receiver_clock on PPP ionosfäärivaba kombinatsioon ja vastuvõtja kella lahendus SP3-klassi (sünteetilise) tõe vastu, tühistades esimese järgu ionosfääri täpselt. rytov_variance, fried_parameter ja ühikkeskmisega lognormal_fading modelleerivad vaba ruumi optilise lingi turbulentsist tingitud sillerdust. fit_power_law_psd on Alani dispersioonikõvera täielik IEEE-1139 viie koefitsiendi h_α vähimruutude sobitus (kõik viis kanoonilist müraprotsessi korraga), domineeriva protsessiga, mis on esitatud τ-dekaadi kohta. ensemble_timescale moodustab pöördvariatsiooniga kaalutud paberist ajaskaala, mille Alani hälve langeb rangelt alla parima panustava kella. 31 ühiktesti; valideerimise sihtmärgid on suletud kujud ja sünteetiline tõde — päris BIPM Circular-T / IGS SP3 sisend on veel tegemata.
  • IONEX ionosfäärikaardid: failiparser, ajainterpolatsioon ja kaldkiire kaldetegur. src/ionex.rs saab funktsiooni parse_ionex, mis loeb IONEX failivormingu (päise ruudustikumääratlus + START/END OF TEC MAP plokid) jadaks IonexMap — normaliseerides faili põhjast lõunasse laiuskraadide järjekorra positiivse sammuga TecGrid ja skaleerides väärtused teguriga 10^EXPONENT. interpolate_tec_in_time segab kaks järjestikust kaarti päringu epohhile ning obliquity_factor / slant_tec kujutavad vertikaalse TEC-i kaldkiirele ühekihilise õhukese kesta teguri M(z) = 1/cos z′ kaudu (sin z′ = (Rₑ/(Rₑ+H))·sin z). Koos tarnitud ruudustikumudeliga muudavad need mõõdetud IGS globaalse ionosfäärikaardi kasutatavaks kaldviivituseks.
  • Konstellatsioonikavand: katvusribade (streets-of-coverage) mõõtmine + mitme konstellatsiooni võrdlus. src/walker.rs saab funktsiooni min_satellites_streets_of_coverage, idealiseeritud katvusribade minimaalse satelliidiarvu lahendaja — tarnitud katvuse poolnurgast λ ja ribapoollaiusest c mõõdab see lähipolaarse konstellatsiooni pidevaks üksikuks globaalseks katvuseks kui p = ⌈π/(2c)⌉ tasandit (nt GPS-i kõrgusel 4 satelliidiga tasand vajab 2 tasandit, 8 satelliiti) ning teatab None, kui satelliidid on pideva riba moodustamiseks liiga hõredad. compare_constellations on mitme konstellatsiooni võrdlusvahend: see hindab iga nimetatud Walkeri kavandit samal jaamal/aknal funktsiooniga pdop_sweep ja tagastab nende katvuse / PDOP-i / suuruse kõrvuti. Aus ulatus: õmblustäpne Rideri parandus vastupidiselt pöörlevate tasandite piiril ja 3-D katvusgloobus jäävad järgmisteks sammudeks.
  • Mitmekihiline spuufimise tuvastus: RAIM-kooskõla pariteedidetektor + kihtide liitmine. src/spoof_monitors.rs saab kolmanda ja viimase tuvastuskihi ning liitmisetapi: parity_raim_test sobitab asendi/kella lahendi vähimruutudega üleliigsele pseudovahemaade komplektile ja testib allesjäänud kaalutud jääkruutude summat selle χ²(m−4) läve vastu — märkides satelliitide nihutatud alamhulga, jättes samal ajal ühisrežiimi nihke (mille vastuvõtja kell neelab) õigesti RAIM-ile nähtamatuks, mitte seda üle katmata. fuse_spoof_layers kombineerib pariteedi, AGC ja SQM kihid üheks kaalutud otsuseks, mis kirjutab üles, millised kihid aktiveerusid. Monte Carlo iseloomustab detektorit: empiiriline P_fa ≈ 0,068 vs 0,05 kavandipunkt, tuvastamata jäänud sündmus langeb väärtuselt 0,885 2σ spuufimisnihke korral väärtusele 0,16 8σ korral. Aus ulatus: ristvalideerimine konkreetsete avaldatud (Spirent / ION GNSS+) spuufimise testvektoritega vajab neid väliseid andmestikke ja jääb järgmiseks sammuks.
  • Seotud-vs-lahutatud Kalmani valideerimisansambel. 100-katseline Monte Carlo failis src/fusion/coupled.rs kvantifitseerib asendi↔kella ristkovariatsiooni kandmise väärtust: truu sisseehitatud lahutatud lähtetase (valideeritud bitt-bitilt tarnitud CoupledPntFilter vastu) töötleb samu andmeid nullitud ristplokkidega ning pärast peaaegu degenereerunud pseudovahemaid pluss ainult kella lahendust taastab seotud filter asendi 2,97 m RMS täpsusega vs lahutatud filtri 48,8 m, võites 97 katsest 100-st — kella lahend teravdab asendit ainult korrelatsiooni kaudu, mille lahutatud pakk kõrvale heidab. See lõpetab Kalmani õigsuse valideerimiskomplekti (Joseph'i vorm, PSD ohutus, NEES/NIS kooskõla ja nüüd seotud filtri ansambel).
  • Orbiidi määramise torujuhe (partii + järjestikune). Uus src/orbit_determination.rs taastab satelliidi orbitaalse oleku [r, v] maajaama kaugusjälgimisest, komponeerides kolm tarnitud osa: kahe keha + J2 jõumudel (src/forces.rs) ja RK4 integraator (src/integrator.rs) propageerivad kandidaatoleku üle kaare, kaugusmõõtmise mudel ennustab iga jaama kauguse ning Gauss–Newtoni partiiparandaja (src/batch_ls.rs) juhib kandidaadi parima sobituse olekule (determine_orbit_batch). Samad dünaamika ja kaugusmudel juhivad ka järjestikust rekursiivset määramist tarnitud unscented filtril (determine_orbit_sequential). Seda valideerib neli testi: kauguse ennustus üle kaare; partii taastamine alammeetri / mm·s⁻¹ täpsusega müravabadest kaugustest; partii taastamine ~2 m täpsusega, järelsobituse jäägiga 5 m müra põhjal (kooskõlalise vähimruutude sobituse signatuur); ja järjestikune taastamine kümnete meetrite piires. Aus ulatus: kauguse muutumise kiiruse/Doppleri ja nurkmõõtmised, analüütiline J2 olekuüleminekumaatriks ja jaama nähtavusmaskeerimine on järgmised sammud.
  • Tihedalt seotud GNSS/INS UKF navigaator. Uus src/fusion/tightly_coupled.rs ühendab tarnitud unscented Kalmani tuuma (src/fusion/ukf.rs) töötavaks tihedalt seotud navigaatoriks kaheksaolekulisel [px,py,pz,vx,vy,vz,b,d] (ECEF asend/kiirus pluss vastuvõtja kella nihe ja triiv kaugusühikutes). See võtab sisse toorsatelliidimõõtmised — pseudorange (ρ = |p − sᵢ| + b) ja range_rate/Doppler (ρ̇ = (p − sᵢ)·(v − ṡᵢ)/|p − sᵢ| + d) — mitte eelnevalt moodustatud asendilahendit, nii et TightlyCoupled (funktsioonidega propagate/propagate_orbital/ update_gnss) jätkab parandamist alla nelja satelliidiga ja veereb GNSS-i katkestustest läbi oma propageeritud dünaamikal. Viis testi valideerivad seda otsast lõpuni, sh verstaposti vastuvõtustsenaariumid: pseudovahemaa/Doppleri geomeetria käsitsi väärtuste vastu; müravaba koondumine alammeetrini viiel satelliidil; kolme satelliidi juhtum, mis koondub ~212 m-lt ~13 m-ni, kus hetktõmmise PVT-d ei saa isegi moodustada; konstantse kiirusega 120-sekundiline katkestus 50 m piires; ja — põhiline vastuvõtt — 30-minutiline kõverduv LEO ülelend (päris kahe keha + J2 orbiit) 120-sekundilise GNSS-i katkestusega, hoitud 0,77 m ülelennu RMS ja 2,9 m halvima juhuna katkestuse jooksul. See orbitaalne väljajooks komponeerib tarnitud gravitatsiooni jõumudeli (src/forces.rs) ja RK4 integraatori (src/integrator.rs) UKF protsessimudeliks (propagate_orbital), nii et filter järgib orbiidi kõverust — mida konstantse kiirusega väljajooks ei suuda (ainuüksi kõverus on LEO-l ~58 km 120 s jooksul). Aus ulatus: orbitaalne väljajooks kasutab kahe keha + J2 jõumudelit, mitte toor-IMU erijõudu (jõuta orbitaalplatvormil need langevad kokku); strapdown-IMU veaoleku ja tsüklisisese iono/tropo parandite sissepõimimine on järgmised sammud.
  • Kaardisobituse mõõtmismudel (maastiku-/gravitatsioonipõhine navigatsioon). Uus src/mapmatch.rs annab mõõtmismudeli, mis muudab tarnitud järjestikuse tähtsusvalimi osakestefiltri (src/particle_filter.rs) töötavaks GPS-ita navigaatoriks: field_likelihood (Gaussi välja sobitamise tõepära) ja map_match_likelihood, mis valimit mis tahes georefereeritud etalonvälja — maastiku kõrgus (TRN) või gravitatsiooni anomaalia — osakese asendis ja kaalub seda kokkulangevusega sõiduki mõõdetud väärtusega. Väli on mis tahes Fn(lat, lon) -> value valimivõtja, nii et see komponeerub ruudustiku bilineaarse interpolaatoriga failis src/ionex.rs või sulundiga. Kaks testi ankurdavad seda — tõepära tipp (=1) täpsel sobitusel langeb väärtuseni e^(−½) ühe sigma juures ning osakestefilter eristuval sünteetilisel maastikulaigul taastab tõelise asendi 0,1 piires. Aus ulatus: päris etalonkaardid (SRTM kõrgus, EGM/EIGEN gravitatsiooni anomaalia) ja nende laadijad on järgmised sammud.
  • Tsislunaarne PNT terviklikkus (Kuu ARAIM). Uus src/lunar.rs rakendab Maa poole MHSS ARAIM mootorit LunaNet-laadsele Kuu navigatsiooniteenusele Kuu parameetritega (σ_URE ≈ 30 m vs GPS 0,6 m, P_sat ≈ 1e-4): Kuu konstandid, selenotsentriline Ida/Põhja/Üles baas ja taevageomeetria abifunktsioon ning lunar_araim (HPL/VPL). Kolm testi ankurdavad seda — ortonormaalne selenotsentriline baas, kaldkauguse geomeetria ja täpne lineaarne kaitsetaseme skaleerumine σ_URE järgi (Kuu 30 m annab 50× suurema kaitsetaseme kui sama geomeetria GPS 0,6 m juures — kvantitatiivne põhjus, miks Kuu PNT terviklikkus on raske). Aus ulatus: täpne LANS NRHO efemeriid, signaal-ruumis veaeelarve ja MCI↔MCMF raami taandamine on järgmised sammud.
  • Kaheosalised (kõrge täpsusega) Juliuse kuupäevad. Uus src/jd2.rs lisab Jd2, täisarvuliseks day ja murdosaks frac vahemikus [0,1) jagatud Juliuse kuupäeva (SOFA/hifitime konventsioon), funktsioonidega new/from_parts/add_seconds/diff_seconds/total. Lähedaste epohhide vahed jäävad täpseks f64 põhjani, kus üksik-f64 JD kaotab J2000 lähedal ~50 µs. Neli testi ankurdavad seda: edasi-tagasi teisendus, murdosa normaliseerimine, täpne mikrosekundi taastamine (kõrval demonstreeritud üksik-f64 tõrge) ning liiteline/pööratav sekundiaritmeetika.
  • CCSDS OMM (Orbit Mean-Elements Message) kirjutaja. Uus src/omm.rs täiendab efemeriidikirjutajat oem keskmiste elementide sõnumiga: OmmFile::from_tle kujutab SGP4/TLE keskmised elemendid OMM ühikutesse (keskmine liikumine tiirlustes päevas, nurgad kraadides, pluss BSTAR) ja to_omm_kvn serialiseerib standardiloomise CCSDS 502.0-B-2 KVN vormi — nii et Kshana orbiiti saab tarbida iga OMM-i tundev tööriist, mitte kohandatud TLE-na. Kaks testi ankurdavad TLE→OMM ühikuteisendust (≈ 15,5 tiirlust/päevas, 51,6° kaldenurk jne) ja nõutud KVN märksõnade olemasolu. Aus ulatus: KVN vorm ja TLE vastendus tarnitakse siin; XML (ndm/omm) renderdus ja etalonparseriga edasi-tagasi teisendus on järgmised sammud.
  • Järjestikuse tähtsusvalimi osakestefilter. Uus src/particle_filter.rs lisab mittelineaarse, mitte-Gaussi hindaja kaardiabiga GPS-ita navigatsiooni taga (maastikupõhine või gravitatsioonikaardi sobitamine): predict (propageeri osakesed läbi dünaamika + Gaussi protsessimüra), update (kaalu uuesti osakese kohase mõõtmise tõepäraga), süstemaatiline resample, degeneratsiooni seire effective_sample_size ja kaalutud keskmine hinnang. Kuus testi ankurdavad deterministlikku tuuma täpselt — ESS ulatub 1…N, süstemaatiline uuesti valimine valib indeksid kaaluga võrdelises vahekorras, kaalutud keskmise kumer kombinatsioon, Gaussi tõepära tõmbab hinnangu mõõtmisele, uuesti valimine ühtlaseks käitumine ja algväärtusega (seed) predict-determinism. Aus ulatus: mootor tarnitakse siin; etalonkaardid (SRTM kõrgus, EGM gravitatsiooni anomaalia) ja kaardi mõõtmismudel on järgmised sammud (ruudustiku+bilineaarne valimivõtja ionex teeniks gravitatsiooni/maastiku kaarti võrdselt).
  • IONEX-laadsed TEC ionosfäärikaardid. Uus src/ionex.rs lisab mõõdetud ionosfääri alternatiivi edastatavale Klobucharri mudelile: TecGrid (vertikaalse TEC-i korrapärane laius-/pikkuskraadi ruudustik, IGS globaalne ionosfäärikaart) bilineaarse interpolatsiooniga läbitungimispunktis (vtec_at, väljaspool ruudustikku piiratud) ja esimese järgu viivitusega Δ = 40.3·TEC/f² (vtec_to_delay_m, delay_at). Neli testi ankurdavad seda: 1 TECU ≈ 0.162 m L1 juures skaleerimisega 1/f², sõlmetäpne interpolatsioon, bilineaarsed keskpunktid, mis keskmistavad nurgad, ning serva järgi piiratud ruudustikuvälised päringud. Aus ulatus: ruudustik ja interpolatsioon tarnitakse siin; IONEX failivormingu parsimine, ajainterpolatsioon kaartide vahel ja kaldkiire kujutusfunktsioon on järgmised sammud.
  • Geomeetrilised aja edastamise parandid (Sagnac + GNSS ühisvaade). Uus src/timegeo.rs lisab kaks deterministlikku efekti, mida päris kellavõrdlus peab arvestama, täiendades stohhastilist kahesuunalist mudelit failis timetransfer: sagnac_correction (Δt = (ω_E/c²)·(x₁y₂ − x₂y₁), pöörleva Maa viivitus — kontinentaalsete baasjoonte puhul kümneid ns) ja common_view_offset, GNSS ühisvaate ühe vahe, mis tühistab satelliidi kella vea täpselt ja taastab jaamadevahelise nihke. Kolm testi ankurdavad neid täpsete etalonide vastu: ekvatoriaalse veerandpöörde ≈ 33 ns Sagnac, antisümmeetria ning radiaalsed/polaarsed nulljuhud ja täpne satelliidikella tühistumine. Aus ulatus: täielik TWSTFT transponderi/riistvara viivituse eelarve ja PPP ionosfäärivaba aja edastamise lahendus on järgmised sammud.
  • Orbitaalne jõumudel (kahe keha + J2). Uus src/forces.rs lisab kiirendusmudeli, mida numbriline propageerija integreerib: two_body_accel (−μ·r/|r|³), lapikusehäiring j2_accel (ECI suletud kuju) ja neid summeeriv gravity_accel — seo see failiga src/integrator.rs kui f(t,[r;v]) = [v; a(r)]. See avab ka analüütilised J2 sekulaarsed kiirused (j2_secular_rates): sõlme regressioon Ω̇, apsiidide pöörlemine ω̇ ja keskmise anomaalia triiv Ṁ. Kuus testi ankurdavad füüsikat täpsete etalonide vastu: μ/r² kahe keha liikme jaoks, J2 suletud kuju ekvaatoril (~10⁻³ kahe keha suurusest), kriitiline kaldenurk (63,4349°), mis külmutab perigeumi (ω̇ = 0), ISS-i sõlme regressioon (Ω̇ ≈ −5°/day) ning retrograadse päikesesünkroonse orbiidi idasuunaline triiv. Aus ulatus: ainult kahe keha + J2; J3–J6, takistus, SRP ja kolmas keha on järgmised sammud.
  • Jagatavad stsenaariumi püsilingid. Uus src/permalink.rs lisab sõltuvusteta RFC 4648 Base64 koodeki (standardne +/ tähestik täitega ja URL-ohutu -_ täiteta tähestik) ning ümbrised encode_scenario / decode_scenario, nii et mänguväljaku TOML saab kodeerida päringuparameetriks ?s= ja jagada URL-ina. Brauserile avatud wasm sidumistena encode_permalink / decode_permalink. Neli testi ankurdavad seda kanooniliste RFC 4648 vektoritega ("foobar" → "Zm9vYmFy" jne), URL-ohutu stsenaariumi edasi-tagasi teisendusega (+///= pole vaja paojada), kehtetute sümbolite tagasilükkamisega ja kõigi 256 baidi edasi-tagasi teisendusega. Aus ulatus: koodek ja sidumised tarnitakse siin; mänguväljaku nupu Share kasutajaliides, Plotly/D3 mitme seeria joonis ja A/B võrdlusrežiim on järgmised sammud.
  • Gauss–Newtoni partii vähimruudud (partii diferentsiaalparandaja). Uus src/batch_ls.rs lisab hindamistuuma, millel põhineb partii orbiidi määramine (või mis tahes parameetrite sobitus): gauss_newton lineariseerib kasutaja antud mudeli h(x) tsentraalse lõpliku vahe Jacobi maatriksiga, moodustab ja lahendab kaalutud normaalvõrrandid (HᵀWH)·Δx = HᵀW·(z − h(x)) (taaskasutades testitud maatriksi pöördmaatriksit) ning itereerib koondumiseni mõõtmiskohaste kaaludega. Neli testi ankurdavad seda: lineaarne sirge sobitus, mis jõuab täpse kaalutud vähimruutude lahendini, mittelineaarne a·exp(b·t) sobitus, mis taastab tõelised parameetrid, 3-D kauguse multilateratsioon, mis taastab teadaoleva asendi müravabadest kaugustest (orbiidi määramise maitse), ning alammääratud/mittesobivate sisendite tagasilükkamine. Aus ulatus: see on üldine parandaja mootor; orbiidispetsiifiline kauguse/kauguse muutumise kiiruse/asimuudi-kõrguse mõõtmismudel, analüütiline J2 olekuüleminekumaatriks ja avaldatud juhtumiga valideerimine on järgmised sammud.
  • RF-kihi spuufimise seired (AGC võimsus ja SQM). Uus src/spoof_monitors.rs lisab kaks sõltumatut vastuvõtja esiosa spuufimise detektorit, mis täiendavad kellaabiga ajaspuufimise seiret failis spoof: AGC võimsusseire (combine_power_dbm mittekoherentne võimsussumma + AgcMonitor), mis märgib liigse vastuvõetud võimsuse, mille spuufimissaatja lisab üle seadistatava dB varu, ja signaalikvaliteedi seire (bpsk_autocorr kolmnurkne koodi autokorrelatsioon + SqmMonitor), mis märgib Early-miinus-Late korrelaatori tasakaalutuse, mille toovad sisse mitmeteelevi/meaconing/kordus. Neli testi ankurdavad täpseid suletud kujusid (3,01 dB võimsuse kahekordistamisel, koondsumma 10·log10(N), kolmnurkne R(τ)=1−|τ| ja 10 % Early/Late häirelävi). Aus ulatus: täielik RAIM-kooskõla pariteedi spuufimisdetektor, seireväljundite mitmekihiline liitmine ja valideerimine avaldatud Spirent/ION GNSS+ spuufimisvektoritega on järgmised sammud.
  • Adaptiivne numbriline ODE integraator. Uus src/integrator.rs lisab numbrilise propageerija esimese osa (Kshana orbiidi propageerimine on muidu analüütiline SGP4/SDP4): üldine neljandat järku Runge–Kutta samm (rk4_step) mis tahes esimest järku süsteemi y' = f(t, y) kohal ja adaptiivne draiver (integrate), mis kontrollib lokaalset viga sammu kahekordistamisega (Richardsoni ekstrapolatsioon) standardse sammukontrolleriga 0.9·(tol/err)^(1/5) ja vastuvõtmise/tagasilükkamise loogikaga. Kuus testi ankurdavad seda täpsete lahendite vastu: eksponent y' = y → e täpsusega < 1e-9, ~16× vea vähenemine poolitatud sammu kohta, mis tõestab neljandat järku koondumist, harmoonilise ostsillaatori energia/tagasipöördumise säilimine täisperioodi jooksul ning adaptiivne draiver, mis täidab range tolerantsi muutuvate sammudega. Aus ulatus: see on integraatori tuum ja selle veakontroll; Dormand–Prince'i RK5(4)/RKF7(8) põimitud tabelid ja hierarhiline orbiidi jõumudel (kahe keha + J2–J6 + takistus + SRP + kolmas keha), mis teevad sellest NumericalPropagator, on järgmised sammud.
  • Unscented (sigma-punktide) Kalmani filter. Uus src/fusion/ukf.rs lisab skaleeritud unscented Kalmani filtri (Julier & Uhlmann; Wan & van der Merwe) üldise n-olekulise hindajana kasutaja antud protsessi- ja mõõtmisfunktsioonide kohal — sigma-punktide hindaja, mida tihedalt seotud GNSS/INS navigaator kasutab, kui pseudovahemaa/Doppleri mudel on tugevalt mittelineaarne ja EKF-i Jacobi maatriks halveneb. See sisaldab toetavat tihedat lineaaralgebrat (Choleski tegur sigma-punktide hajuvuse jaoks, Gauss–Jordani pöördmaatriks innovatsioonikovariatsiooni jaoks) ja Joseph'i vaba uuendust P⁺ = P⁻ − K S Kᵀ. Kuus testi fikseerivad selle, võtmetestid kasutavad täpset omadust, et lineaarse mudeli korral taastoodab unscented teisendus Kalmani filtri numbrilise täpsusega (ennustus, uuendus ja täielik ennustus+uuenduse tsükkel, kõik võrdluses käsitsi käitatud lineaarse KF-iga, pluss 1-D analüütilise Bayesi aposterioorse kontrolliga ning Choleski/pöördmaatriksi samasustega). Aus ulatus: see on hindaja mootor; 17-olekuline tihedalt seotud GNSS/INS navigaator, pseudovahemaa/Doppleri mõõtmismudel ja katkestuse valideerimise stsenaarium jäävad järgmisteks sammudeks.
  • Kahe konstellatsiooniga ARAIM kaitsetasemed. Uus araim_dual_raim laiendab ühe tõrkega täiustatud RAIM-i (araim_raim) EU ARAIM / DO-316 konstellatsiooniülese tõrkerežiimiga: tõrgeteta ja satelliidikohaste hüpoteeside kõrval annab iga konstellatsioon (märgendatud satelliidi kohta) ühe hüpoteesi, mis eemaldab kõik oma satelliidid korraga, eelnevaga P_const (uus DualFaultPriors { p_sat, p_const }). Iga hüpotees lisab liikme samasse MHSS terviklikkuse summasse, nii et VPL/HPL on väikseimad piirid, mille kogu P_HMI täidab eelarve tõrgeteta + ühe SV + konstellatsioonikohaste tõrgete üle (Bonferroni valehäire jaotus on kõigi N + C hüpoteeside üle). Kui P_const = 0, on tulemus bitt-bitilt araim_raim; ühe konstellatsiooniga kasutaja tagastab None oma konstellatsioonitõrke vastu (seda ei saa välistada) — just seetõttu on kahe konstellatsiooniga katvus oluline. Neli testi katavad samaväärsuse, kaitsetaseme laienemise, ühe konstellatsiooni kättesaamatuse ja sisendi valideerimise, taaskasutades olemasolevat lahenduse eraldamise alamlahendi masinavärki.
  • IAU 2006 pretsessioon (Fukushima–Williamsi nurgad ja nihke-pretsessiooni maatriks). Uus src/precession.rs teostab IAU 2006 (P03; Capitaine, Wallace & Chapront 2003) pretsessiooni: neli Fukushima–Williamsi nurka (γ̄, φ̄, ψ̄, ε̄_A) TT Juliuse sajandite polünoomidena (fw_angles) ja neist SOFA iauFw2m konstruktsiooniga ehitatud GCRS→keskmine-kuupäeva nihke-pretsessiooni pöördemaatriks (precession_matrix, abifunktsioonidega gcrs_to_mod / mod_to_gcrs). See on esimene inertsiaalraami osa olemasoleva GMST-põhise frames taandamise peal. Kaheksa testi valideerivad suletud kuju ankrute vastu — J2000 keskmine kaldenurk ε̄ = 84381.406″ = 23.4392794°, avaldatud nurkade konstantliikmed, üldpretsessiooni ψ̄ ≈ 5039.998″ kuhjumine sajandi jooksul, maatriksi ortonormaalsus ja det = +1, peaaegu ühikväärtus (ainult raami nihe) J2000 juures ja ≈ 1.40°/sajand netopöördenurk. Aus ulatus (ROADMAP.md): ainult pretsessioon — IAU 2000A 678-liikmeline nutatsioon, täielik TEME→GCRS ahel ja SOFA/ANISE µas/<10 m numbriline ristkontroll on järgmised sammud.
  • Esimestest printsiipidest külmaatom-interferomeetri (CAI) kiirendusmõõturi füüsika. src/inertial/quantum_imu.rs modelleerib kolmeimpulsilist Mach–Zehnderi aatominterferomeetrit esimestest printsiipidest, mitte andmelehe järgi: efektiivne lainevektor k_eff = 4π/λ, interferomeetri faas Φ = k_eff·a·T², kvantprojektsiooni (haava) müra σ_Φ = 1/(C·√N), kiirendustundlikkus ühe kordi kohta, kontrasti lagunemine C(t) = C₀·e^(−t/τ) ja — põhiline — CaiAccelerometer::q_va(), mis tuletab valge kiirenduse PSD, mida klassikaline AccelModel juba tarbib, aatomite arvust, päringuajast ja kontrastist. Mudel katab nüüd ka vibratsioonisidestuse — domineeriva päris seadme liikme: interferomeetri kiirendus→faas ülekandefunktsioon |H(ω)| = (4/ω²)sin²(ωT/2) (accel_transfer_function), valge PSD faasidispersioon σ_Φ² = k_eff²·S_a·T³/3 (vibration_phase_variance_white, numbrilise ribaintegraali ristkontrolliga vibration_phase_variance_band), astaku-1 kiire sihis beam_axis_projection ning CaiAccelerometer::vibration_phase_noise / vibration_limited_accel (viimane taandub k_eff-sõltumatule põhjale √(S_a/(3T))). Üksteist testi kontrollivad füüsikat käsitsi (Rb-87 k_eff ≈ 1.61×10⁷, Φ(1 g) ≈ 1.58×10⁴ rad, σ_a ≈ 0.13 µg/kord haavamüra põhi vs ≈ 5,9 µg vibratsiooni põhi, 1/T², 1/√N ja T³ skaleerimisseadused). Aus ulatus failis docs/QUANTUM.md: see hõlmab projektsioonimüra põhja ja sellest kõrgemat vibratsiooniga piiratud režiimi; laserifaasi müra, Coriolisi ja valgusnihke süstemaatilised vead ning PHARAO/CARIOQA valideerimisstsenaariumid jäävad järgmisteks sammudeks.
  • Kvant-CAI kiirendusmõõtur ühendatud inertsiaalstsenaariumisse. Kiirendusmõõtur inertsiaalses hinnangulise asukoha stsenaariumis lahendub nüüd uueks ImuKind — Classical (olemasolev andmelehe koefitsiendiga andur) või QuantumCai, kui sellel on valikuline plokk [cai] (CaiCfg: lainepikkus, impulsside vahe, aatomite arv, kontrast, tsükli aeg ja valikuline platvormi vibration_psd). Anduri quantum_cai kiiruse juhusliku käigu PSD q_va on tuletatud interferomeetri füüsikast — haavamüra põhi pluss, kui vibratsiooni PSD on antud, vibratsiooniga piiratud osa kvadratuuris — selle asemel et esitada koefitsient, ning käituse päritolu kirjutab üles, et müra on füüsikast tuletatud. Väli cai on skip_serializing_if = "Option::is_none", nii et olemasolevad stsenaariumid jätavad selle välja ja serialiseeruvad baidi haaval identselt (stsenaariumi räsi on muutumatu). Viis testi katavad tuletuse, kvadratuurse vibratsioonisumma, valiku Classical/QuantumCai, räsistabiilse serialiseerimise ja otsast lõpuni CAI-juhitud käituse.
  • Konstellatsioonikavandi optimeerija ja katvusribade (streets-of-coverage) geomeetria. src/walker.rs saab funktsiooni optimize_walker_design, gradiendivaba ruudustikuoptimeerija, mis otsib kavandiruumi {planes × sats × inclination} ja tagastab parima Walkeri kavandi valitud eesmärgi DesignObjective all — MinSatellitesForCoverage, MaxCoverage või MinWorstPdop — juba valideeritud PDOP pühkimise üle (test kinnitab, et see tagastab toorjõu võitja). Pluss analüütilised katvusribade (streets-of-coverage) suletud kujud coverage_half_angle_rad (λ = arccos(Re/r·cos ε) − ε) ja street_half_width_rad (cos c = cos λ / cos(π/s), Rider/Beste), käsitsi kontrollitud õpikugeomeetria vastu ja tuvastades alaasustuse lünga. Täielik Rideri minimaalse satelliidiarvu globaalse katvuse lahendaja, 3-D mänguväljaku gloobus ja välise tööriista DOP ristkontroll on järgmised sammud.
  • SP3 täppisefemeriidi eksport CLI-st. Propageeritud orbiidi/konstellatsiooni stsenaariumi saab nüüd kirjutada SP3-c faili: kshana <orbit.toml> --export-sp3 out.sp3 või export_sp3 = true stsenaariumis kirjutab automaatselt faili <scenario>.sp3 (api::export_sp3 / auto_export_sp3, OrbitClockScenario::to_sp3_string, valikuline epoch). Edasi-tagasi test (tests/sp3_export_roundtrip.rs) propageerib päris Celestraki gps-ops hetktõmmise, ekspordib selle, parsib uuesti ja kinnitab, et taastatud ECEF asendid langevad SGP4 tõega kokku 24 h jooksul täpsusega < 0,5 m (tublisti 10 m TLE-klassi tolerantsi sees). README dokumenteerib koostalitluse rolli (RINEX → RTKLIB/gLAB, SP3 → Ginan/täppisorbiidi tooted).
  • Seotud kella+asendi Kalmani filter (ristploki kovariatsioon). src/fusion/coupled.rs CoupledPntFilter on üks virnastatud [pos, vel, phase, freq] filter (Joseph'i vormi uuendused), mille pseudovahemaa mõõtmine ρ = g·pos + c·phase + noise seob asendi- ja kellaplokid tõeliselt — erinevalt vana liitmispaketi kahest sõltumatust kaheolekulisest filtrist, mis hoiavad ristploki kovariatsiooni täpselt nullis. Valideeritud: ühine pseudovahemaa ajab P[pos,phase] nullist erinevaks; kaks erinevat geomeetriat lahendavad koos süstitud asendi+kella nihked, mida üksik kaugus eristada ei suuda; ainult kella lahend teravdab asendit ristkovariatsiooni kaudu (kasu, mida lahutatud filtrid anda ei suuda); ja Monte Carlo NEES on χ²(4)-kooskõlaline. See on 1-DOF realisatsioon (liitmispaketi dimensionaalsus); 3-D 8-olekuline laiendus ja ühendamine käivitatavasse paketti on järgmised sammud.
  • Kalmani filtri kooskõla tervisejälgimine (NIS/NEES). Kaheolekulise kellafiltri kovariatsiooniuuendus on nüüd Joseph'i stabiliseeritud kujul `P⁺ = (I−KH)P(I−KH)ᵀ
    • KRKᵀ, which stays positive-semidefinite under extreme Q/R ratios (Cholesky-checked in CI at R=1e-26 / Q≈1e-30). A new src/filter_health.rsruns a Monte-Carlo consistency assessment (Bar-Shalom §5.4): pooled **NIS** (normalised innovation², target 1) and **NEES** (normalised estimation error², target 2) against 95% χ² bands, surfaced as afilter_health { nis_mean, nis_chi2_lower_95, nis_chi2_upper_95, nees_mean, nees_chi2_lower_95, nees_chi2_upper_95, consistent } block in the clock result JSON and as a green/amber card in the playground. A Q/R-mismatch sweep test proves the monitor flips to inconsistent when the process noise is mistuned by ×0.1–×10. Adds a general χ² quantile (detection::chi2_inv_cdf`, Wilson–Hilferty, tabeliga kontrollitud).
  • docs/PROVENANCE.md — üks tsiteeritav päritolutabel. Koondab iga anduriparameetri (kellad, inertsiaal, aja edastamine), füüsikalise/algoritmilise mudeli (orbiit, ajasüsteemid, raamid, iono/tropo, terviklikkus, tuvastamine, segamine, Alan) ja valideerimisandmestiku (AIAA 2006-6753, Celestraki gps-ops) koos selle avaldatud allikaga — andmeleht, artikkel, ICD või standard — ning aus küpsusmärgend (lennukvalifitseeritud / maalabor / kosmoseesmärk-maapealsel-riistvaral). Lingitud README sissejuhatusest ja dokumentatsioonitabelist; täiendab käitluskohaseid provenance stringe, mis juba liiguvad tulemuse JSON-is kaasas.
  • Tüpiseeritud stsenaariumi API. Edastus toimub nüüd tüpiseeritud enumil ScenarioKind toorestringi kind sobitamise asemel (ScenarioKind::classify + ammendav edastus), nii et paketi lisamine on kompileerimisel kontrollitud. Uued tüpiseeritud pinnad muutumatu stringi tagastava run_toml kõrval: run_scenario(src) -> Result<RunOutput, KshanaError> struktureeritud veataksonoomiaga (InvalidInput / NonConvergence / Unsupported / IoError, igaühel stabiilne kind_tag()); tunnusjoon Scenario ja laienduspunkt ExternalPack (pakett jamming on selle kaudu ühendatud töötatud näitena); ning enesevaatlus list_scenario_kinds() (nimi, kirjeldus, kohustuslikud/valikulised väljad liigi kohta). Pythoni ja WebAssembly sidumised saavad list_kinds() ja error_kind(). Dokumenteeritud failis docs/ARCHITECTURE.md.
  • Päris GPS konstellatsioon + töökeskkonna ümbriku katvus. scenarios/orbit-sgp4-gps.toml tarnib nüüd päris Celestraki gps-ops hetktõmmise (2021-07-28, 30 satelliiti) sünteetiliste Walkeri TLE-de asemel lipuga strict_checksum = true, nii et see laaditakse ainult siis, kui iga TLE kontrollsumma on kehtiv; scripts/fetch_tles.sh dokumenteerib reprodutseeritava värskenduse ja README tunnustab avaandmete allikat. Uus tests/scenario_coverage.rs käitab iga paketti ≥5 ümbrikuvariandiga, kinnitades lõpliku/piiratud väljundi, kinnitab, et flicker-FM põhi halvendab mõõdetavalt kella väljajooksu, kui see on lubatud (nüüd seatud kolmes tarnitud stsenaariumis), ja kinnitab, et liitmisfilter koondub realistliku nullist erineva kiirendusmõõturi nihkega (kuni 3× nullitud nihkega juhtumist), sulgedes realismilõhe „fusion only works with zeroed biases“. docs/VALIDATION.md saab töökeskkonna ümbriku tabeli.
  • Mõõtmisruumi GNSS simulatsioon (stsenaariumi liik gnss-sim). Pseudovahemaa taseme otsemudel: iga nähtava satelliidi kohta sünteesib see ρ = geometric range + c·δt_rx − c·δt_sv + I + T + noise + multipath ja L1 Doppleri, Klobucharri ühesagedusliku ionosfääri (IS-GPS-200 §20.3.3.5.2.5) ja Saastamoineni zeniidi troposfääriga, mida projitseerib Nielli (1996) kujutusfunktsioon — esitatud TOML plokkidena [iono] ja [tropo]. Jäägid toidavad hetktõmmise RAIM-i epohhikohase HPL/VPL jaoks ning JSON-massiiv gnss_measurements[] kannab iga SV pseudovahemaad, Dopplerit, C/N₀ ja iono/tropo parandeid. Nullmüraga käitus taastoodab geomeetria + parandid alammillimeetri täpsusega (CI test). Uued src/gnss_sim.rs ja scenarios/gnss-sim-raim.toml.
  • Stohhastiline ajaspuufimise detektor (stsenaariumi liik spoof). Spuufimispakett käitab nüüd päris detektorit deterministliku kalde-vs-piiri võrdluse asemel: neli süstimiskuju (linear_ramp, step_jump, meaconing, replay), kahepoolne χ²₁ energia / Neyman–Pearsoni test kellaabilise seirestatistiku peal lävega, mis on seatud sihtvalehäire eelarvest target_pfa, ning tuvastamata jäänud sündmuse tõenäosus P_md esitatud nii suletud kujul kui Monte Carlo abil (mc_runs katset hüpoteesi kohta — need kaks langevad kokku mõne ×1/√N täpsusega). Turbe kvaliteedinäitaja on nüüd 1 − P_md operatiivselt kahjuliku (spets) suuruse juures. Uus src/detection.rs (Gaussi sabafunktsioonid, NP/energia test, Monte Carlo P_fa/P_md) ja scenarios/spoof-meaconing.toml. Tagurpidi ühilduv: paljas [attack] rate_ns_per_s on endiselt aktsepteeritud lineaarse rambina.

Muudetud#

  • Turbe kvaliteedinäitaja definitsioon (stsenaariumi liik spoof): analüütilisest tuvastatavuse piirist 1 − min_detectable/threshold stohhastilise detektori 1 − P_md-ni. Kellapaketi väli security jääb kiiremaks analüütiliseks asendajaks.

Lisatud (jätk)#

  • RF segamismudel (stsenaariumi liik jamming). Lingieelarve häiremudel, mis muudab segaja võimsuse ja geomeetria satelliidikohaseks lukustuse kaoks: segaja-signaali suhe vaba ruumi levikaost ja suunakohasest vastuvõtuantenni võimendusest, efektiivne C/N₀ standardse häiretevastase võrrandi kaudu (hajutuse kaotamise töötlusvõit × spektrierotustegur Q; Kaplan & Hegarty §9,4) ja seadistatav jälgimislävi, hinnatud Walkeri konstellatsioonil kui kvaliteedinäitaja availability_under_jamming. Uued src/jamming.rs ja scenarios/jamming-demo.toml. Aus ulatus (mitmeteelevi, maastiku varjutuse, AGC ega adaptiivse nullimiseta) on dokumenteeritud failides docs/CAPABILITY.md / docs/VALIDATION.md.
  • Üldine N-D parameetri pühkimine mis tahes stsenaariumi liigi üle (sweep-nd). Eelmine N-D pühkimine oli ainult kellapaketile. sweep-nd varieerib stsenaariumi [base] punktiga eraldatud TOML võtmeid oma telgede Descartes'i korrutise üle, edastab iga ruudustiku sõlme uuesti tavalise käitusraja kaudu ja loeb tulemusest punktiga eraldatud JSON-tee järgi ühe või mitu mõõdikut — nii et see töötab iga paketi (inertsiaal, gnss-ins, terviklikkus, spuufimine, …) jaoks ilma iga paketi Rust-tüübiga sidumata. Ruudustiku sõlmi hinnatakse natiivsetel sihtidel paralleelselt üle OS-i lõimede (lisasõltuvust pole); wasm langeb tagasi järjestikusele. Deterministlik ja ridade kaupa sõltumata lõimede arvust. Uus näide scenarios/sweep-nd-inertial.toml.
  • TOML-iga seadistatav deterministlik IMU veamudel paketis gnss-ins. Kolmetelgne strapdown-veaahel (skaalategur, nihe joondusest, g-tundlikkus, kvantimine, kiiruse rampp; IEEE Std 952-1997 §A.2, Groves 2013 §4,3) on nüüd anduri kohta kättesaadav stsenaariumifailist valikulise ploki [imu_*.error_model] kaudu, kihina konstantsete sisselülitusnihkete peal. Ploki väljajätmine jätab iga anduri puhta konstantse nihke allikaks, nii et olemasolevad gnss-ins käitused on muutumatud. See ühendab varem ainult teegis olnud veamudeli käivitatavasse paketti ja kvaliteedinäitajasse.

0.10.0 - 2026-06-04#

Muudetud#

  • Päris andmetega valideerimine. Mitme-GNSS RINEX navigatsiooniparserit, GLONASS RK4 propageerijat ja SP3 lugejat harjutatakse nüüd päris IGS/DLR failidega (päris RINEX 3 segatud edastatav nav fail ja IGS SP3-c orbiiditoode), mitte ainult ise kirjutatud näidistega — kinnitades mittetühje satelliidikomplekte ning lõplikke, füüsikaliselt mõistliku suurusega ECEF asendeid. Testandmed on ainult testiks (avaldatud crate'ist välja jäetud); vt tests/fixtures/igs/NOTICE.
  • RAIM päris etalonorbiidi geomeetrial. Hetktõmmise, lahenduse eraldamise (MHSS) ja ARAIM kaitsetaseme tuumad on nüüd valideeritud päris IGS täppisorbiidi (SP3) geomeetria vastu, mitte ainult sünteetiliste konstellatsioonidega: vaatejoone geomeetria ehitatakse esimesest SP3 epohhist päris maajaamas ja testid kinnitavad meetritasemel, APV-I-kättesaadavaid kaitsetasemeid, et 60 m pseudovahemaa nihe käivitab χ² seire, et lahenduse eraldamine tuvastab tõrkunud satelliidi ning et ARAIM-i tasemed täidavad eraldatud P_HMI. Sulgeb ainult sünteetilisel geomeetrial valideeritud lünga (vastuvõtjaruumi gLAB pariteet üle täieliku RINEX kaare jääb teekaardi punktiks — see vajab pseudovahemaa lahendit).

Lisatud#

  • Sõlmekohased usaldusvahemikud N-D parameetri pühkimisele (sweep::nd_sweep_ensemble). Iga N-mõõtmelise Descartes'i korrutise pühkimise ruudustiku sõlme saab nüüd hinnata algväärtuste (seed) Monte Carlo ansamblina, esitades mõõdiku keskmise, protsentiilid ja protsentiili-bootstrap 95 % CI sõlme kohta (mõlema kella jaoks) — statistiliselt aus pühkimine, mitte üks väljavõte sõlme kohta. Taaskasutab ansambli/bootstrap'i masinavärki (metric_stat); deterministlik; runs = 1 taandub täpselt ühe algväärtusega nd_sweep. (Pühkimise üldistamine kõigile pakettidele, põimituna tüpiseeritud Scenario ümberkorraldusega, ja paralleelne täitmine jäävad tegemata.)
  • IMU-müra töövoo ristvalideerimine NaveGo vastu (tests/navego_imu_crossval.rs). Väline ristkontroll NaveGo (R. Gonzalezi avatud lähtekoodiga INS/GNSS-tööriistakomplekt) vastu: reprodutseeritakse faili navego_example_allan.m sünteetiline edasi-tagasi tsükkel selle avaldatud Microstrain 3DM-GX3-35 etalonprofiilil ning kinnitatakse, et meie kattuva ADEV hinnang taastab NaveGo kiiruse ja nurga juhusliku liikumise koefitsiendid (ADEV(1 s) = σ·√dt) alla 5% täpsusega ning eeldatava valge müra tõusuga −1/2. (Salvestatud 40 MB STIM300 .mat-logi ei loeta sisse: see on blokeeritud binaarvormingu tõttu.)
  • Tihedalt seotud (pseudovahemaa) GNSS/INS-i uuendus. GnssInsEkf::update_tightly_coupled (ja ümbris ClosedLoopInsGnss::fuse_tightly_coupled) realiseerivad varem tühjalt jäetud vahemaa-ruumi mõõtmise: innovatsioon on INS-i asukohast igasse satelliiti arvutatud ennustatud vahemaa võrreldes mõõdetud pseudovahemaaga, kusjuures vaatejoone Jacobi maatriks on asukohavea suhtes. Kuna iga satelliit on skalaarne mõõtmine, jätkab filter korrigeerimist ka vähem kui nelja satelliidiga, kus lõdvalt seotud PVT-lahendit ei eksisteeri. Viis testi katavad nelja satelliidi nullimist, kahe satelliidi korrektsiooni (PVT pole võimalik), ühe satelliidi jälgitavust piki vaatejoont ja sisendi valideerimist. Ainult pseudovahemaa; kandelaine faas ja selgesõnaline vastuvõtja kella olek jäävad teekaardile. Kasutamata cargo-funktsioon tight_coupling (mis blokeeris vana veatühja) on eemaldatud.
  • Lõdvalt seotud GNSS/INS-i stsenaariumipakett (kind = "gnss-ins", src/fusion/pack.rs). Ühendab kolmeteljelise strapdown-navigaatori ja 15-olekulise veaoleku EKF-i (closed_loop / gnss_ins_ekf) käivitatavaks stsenaariumiks, millel on kvaliteedinäitaja: EKF distsiplineerib mehhaniseerimist müraste GNSS-lahendite vastu, kuni katvus on olemas, seejärel libiseb läbi katkestuse, asendades vana 1-DOF skalaarpaketi tõe külge sundimise lähtestamise tõelise liitmisega. Tulemus esitab liidetud horisontaalvea rea, hinnatud asukoha kvaliteedinäitaja (kättesaadavus / katkestuse RMS / holdover) ning võrdluseks lahtise ahelaga vaba INS-i RMS-i; kvant- ja klassikalise IMU paar erinevad ainult tõelise nihke poolest. Käivitatakse CLI-st, Pythonist või wasm-i sisenemispunktist koos näitega scenarios/gnss-ins.toml. Aus raamistus: ainult lõdvalt seotud, üks deterministlik trajektoor ning liidetud katkestusvea alumise piiri seab üleandmise asendivea (seega ei väideta, et see skaleeruks nihkega); töökindlad järeldused on, et liitmine ületab abita dead-reckoning’u nihkega sensori puhul ning et väiksema nihkega sensoril on parem abita libisemine.
  • Konstellatsiooni kavandamine valideeritud SGP4 tuumal (src/walker.rs). Uus moodul walker väljastab kavandatud Walker-delta mustri (i: T/P/F) SGP4 keskmiste elementidena, nii et sünteetiline konstellatsioon levib sama SGP4 teekonda mööda, mis on valideeritud 4,12 mm täpsusega AIAA 2006-6753 vektorite vastu, mitte analüütilise Kepleri generaatori kaudu. Selle peal: pdop_sweep tabuleerib katvuse ning mediaanse/halvima PDOP-i {planes × sats × inclination} kavandi ruudustiku kohta ja coverage_revisit annab katvuse osa ja uuesti läbimise vahed (halvim/keskmine) maapealses punktis. Valideeritud füüsikaliste monotoonsustega, mida kompromissanalüüs peab järgima (rohkem satelliite ⇒ suurem katvus, madalam PDOP, lühem uuesti läbimine). Eraldi lisatakse ehtne Celestraki gps-ops TLE hetktõmmis (2021-07-28, 30 töötavat GPS-satelliiti) ainult testides kasutatava testandmestikuna ning selle vastu valideeritakse reaalse TLE → SGP4 → ECEF geomeetria teekond (kogu MEO kest 1% piires, üheksa satelliidi samaaegne nähtavus PDOP-iga 1,64), lisaks olemasolevatele reaalandmete SP3 ja RINEX teekondadele.
  • Müratüübispetsiifilised efektiivsed vabadusastmed Alani usaldusvahemike jaoks. allan::edf_overlapping_adev realiseerib NIST SP 1065 tabeli 5 kinnised valemid (Stable32 lihtne komplekt) kõigi viie kanoonilise astmeseadusliku mürategundi jaoks: valge/flicker-PM, valge/flicker-FM ja juhusliku käimise FM. See asendab konservatiivse mittekattuva arvu χ² vabadusastmetena. Uus loendus PowerLawNoise ja classify_power_law tuvastavad domineeriva tüübi kirje modifitseeritud Alani hälbe tõusust (MDEV eristab valget PM-i flicker-PM-ist seal, kus ADEV seda ei suuda), ning overlapping_adev_curve lisab nüüd igale eksporditud ADEV kõvera punktile tuvastatud mürategundi, selle edf-i ja 95% usaldusvahemiku (AdevPoint saab väljad noise/edf/ci_lo/ci_hi, lisanduvad serde vaikeväärtustega). Valideeritud kahel viisil: viis valemit ühtivad käsitsi arvutatud väärtustega 1e-12 täpsusega ning 4 000 kirjega Monte Carlo valge-FM ansambel kinnitab, et valem ennustab hinnangu tegelikku hii-ruut edf-i 20% piires (ja et see on konservatiivsest arvust oluliselt parem). Kaheksa uut testi.
  • Kahesuunalise aja edastamise stohhastiline mudel. timetransfer::TwoWayLink asendab ainult valget müra andva valimi füüsikaliselt põhjendatud mudeliga: vastastikune (ühisrežiimi) teekonnaviivitus tühistub hinnangus (m_AB - m_BA)/2 (two_way_offset_estimate, nii et kaks sõltumatut ühesuunalist mõõtmist keskmistuvad väärtuseks 1/sqrt(2)) ja jääk on mittevastastikune diferentsiaalviivitus, mida modelleeritakse värvilise valge-FM + juhusliku käimise FM protsessina (valideeritud ClockModel), andes sünkroniseerimisvea reale realistliku Alani signatuuri (sigma_y^2(tau) = q_rw*tau/3) lameda valge müra asemel. LinkCfg saab väljad q_wf_s/q_rw_s (serde vaikeväärtus 0 ⇒ varasem ainult valge käitumine, bitthaaval samane), lingi kvaliteedinäitaja annab adev_tau0 (mudeli Alani hälve baassammul) ning stsenaarium ja CLI timetransfer teevad selle nähtavaks. Kuldse kvaliteedinäitaja väärtus on uuesti fikseeritud. Kuus käsitsi tuletatud testi (ühisrežiimi tühistumine, kahesuunalise mõõtmise sqrt(2) võit, RWFM tau/3 seadus lingi enda step() kaudu, varasema käitumisega samaväärsus väärtusel q=0, determinism ja kvaliteedinäitaja lõpust lõpuni nähtavus).
  • Stable32 arvuline vastavus Alani perekonna hinnangute jaoks (NBS14). tests/allan_reference.rs valideerib kattuva ADEV, modifitseeritud ADEV, ajahälbe ja kattuva Hadamardi hinnangud Stable32 etalonhälvete vastu kanoonilisel NBS14 andmestikul (W. J. Riley, Handbook of Frequency Stability Analysis, NIST SP 1065, ~lk 107) väärtustel tau = 1, 2 suhtelise tolerantsiga 1e-4 — tegelik ühtivus ~1e-6. See kinnitab hinnangute matemaatika de facto etalonrealisatsiooni vastu, mitte ainult hinnangute enda analüütilise sisemise kooskõla vastu. Kasutatakse ainult avalikke etalonarve; kolmanda osapoole koodi ei kasutata.
  • Vertikaalne Stanfordi terviklikkuse diagramm, mida ekspordib stsenaarium integrity. Käivitatav stsenaariumi liik integrity ekspordib nüüd vertikaalse Stanfordi(-ESA) diagrammi HPL/VPL kättesaadavuskaardi kõrval: igal kaitstud epohhil kujutatakse algväärtusega reprodutseeritav veatu vahemaaveavalim geomeetria kaudu tegelikuks vertikaalseks asukohaveaks ja klassifitseeritakse VPL-i ning vertikaalse häireläve suhtes (Available / System-Unavailable / Misleading / Hazardously-Misleading). Diagramm (epohhipõhised punktid + piirkondade arvud) kantakse tulemuse JSON-i ning terviklikkuse sündmuste / HMI arvud CLI kokkuvõttesse, nii et Stanfordi klassifikaator, mis oli varem ainult teegis, on kättesaadav lõpust lõpuni. IntegrityScenario saab välja seed (vaikimisi 0), mis juhib vea realisatsiooni; kättesaadavuskaart ise jääb puhtalt geomeetriapõhiseks ja algväärtusest sõltumatuks.
  • ARAIM-i terviklikkusriski (P_HMI) eelarve kaitsetasemete jaoks. raim::araim_raim tuletab horisontaalsed ja vertikaalsed kaitsetasemed selgesõnalisest terviklikkusriski eelarvest, mitte fikseeritud kordajast K_md: kõigi satelliitide nähtavuse lahenduse ja iga ühe satelliidi välistamise alamlahenduse jaoks koostab see igal teljel režiimipõhise (prior, detection threshold, σ) ning araim_protection_level lahendab väikseima PL-i, mille ohtlikult eksitava informatsiooni tõenäosuste summa (araim_integrity_risk, P_HMI = Σ_k p_fault,k · Q((PL − T_k)/σ_k), Blanch jt Baseline ARAIM) vastab eraldatud P_HMI väärtusele. Tulemus annab terviklikkusriski, mille tasemed tegelikult saavutavad, nii et kasutaja saab terviklikkust ja häireläve selgesõnaliselt vahetada. Kuus käsitsi tuletatud testi (veatu ja läviga üherežiimi kinnised valemid, mitmerežiimiline summeerimine/monotoonsus, lõpust lõpuni veatu kaitse, kus 10⁵× kitsam eelarve tõstab PL-i, vea tuvastamine/identifitseerimine ja kuue satelliidi liiasuse alampiir). Üksikvea MHSS on ARAIM-i baasjoon; üheaegsed mitme SV-alamhulga vead, kogu konstellatsiooni vearežiim ja gLAB etalonandmestikuga valideerimine on dokumenteeritud laiendused.
  • Kahekiiruseline coning/sculling kompensatsioon strapdown-mehhaniseerimisele. inertial::mechanization::coning_sculling_compensate voldib kõrgsageduslikud coning (asend) ja pöörlemine+sculling (kiirus) liikmed välja jämeda uuenduse järjestatud alamintervalli IMU juurdekasvudest, nii et mõõduka sagedusega NavState::step_increments taastoodab vibratsioonist rektifitseeritud liikumise, mille toorsummadel põhinev jäme samm kaotab. Valideerimistest ajab 10 Hz coning+sculling keskkonda 60 s ning võrdleb peenisagedusega tõde, naiivset jämedat integreerimist ja volditud jämedat integreerimist: voltimine vähendab asukohaviga ~18× (meetrites naiivne libisemine → alla detsimeetri), kinnitades, et coning/sculling liikmed on kandvad. Tüübialias ScalarErrorBudget nimetab varasema 1-DOF AccelModel selleks, mis see on, eristatuna kolmeteljelisest navigaatorist NavState.
  • RINEX-vaatlusfaili parser. Uus moodul rinex_obs loeb RINEX 3.0x / 4,00 vaatlusfaili — vastuvõtja tegelikke mõõtmisi — ning täidab RINEX-i paari olemasoleva navigatsioonisõnumi parseri kõrval. parse_obs dekodeerib päise (versioon/tüüp, süsteemipõhised SYS / # / OBS TYPES loendid jätkuridadega, ligikaudne asukoht, intervall, esimese vaatluse aeg) ja iga epohhi satelliidipõhised kirjed: pseudovahemaa, kandelaine faas, Doppler ja signaali tugevus, tunnustatud nende RINEX 3 vaatluskoodidega (C1C, L1C, …) ning sideme kaotuse (LLI) ja signaalitugevuse (SSI) lippudega; tühi väli säilitatakse puuduvana, mitte nullina. Aus ulatus: see on standardvormingu sissevõtt (tegelik RTKLIB/gLAB/IGS-jaama vaatluslogi sisse, tüübitud mõõtmised välja), mitte positsioneerimismootor — siin pole pseudovahemaa lahendust, PPP-d ega RTK-d.
  • CCSDS OEM (Orbit Ephemeris Message) kirjutaja. Uus moodul oem ekspordib levitatud konstellatsiooni kehtiva CCSDS 502.0-B OEM 2,0 sõnumina — KVN efemeriidivorming, mida GMAT, Orekit, STK ja enamik lennudünaamika tööriistu sisse loeb. OemFile::from_propagators valib iga satelliidi inertsiaalse (TEME) oleku — asukoha ja kiiruse, otse levitajast ilma Maaga seotud pöördeta, erinevalt SP3 ekspordist — ajaruudustikule ning OemFile::to_oem_string serialiseerib päise CCSDS_OEM_VERS/CREATION_DATE/ ORIGINATOR pluss ühe META_START … META_STOP lõigu satelliidi kohta (OBJECT_NAME/OBJECT_ID/CENTER_NAME/REF_FRAME = TEME/TIME_SYSTEM = GPS/ START_TIME/STOP_TIME), millele järgnevad selle epoch X Y Z X_DOT Y_DOT Z_DOT read (km, km/s). Välja CREATION_DATE annab kutsuja, mitte seinakell, nii et väljund on käivituste vahel baitideni identne (reprodutseeritavuse leping). See on GNSS SP3 ekspordi kosmoseaparaadi efemeriidi vaste: Kshana orbiidi saab nüüd standardvormingus lennudünaamika tööriistale üle anda.
  • SP3 täppisefemeriid levituse allikana. Sp3File::interpolator ehitab satelliidipõhise Sp3Interpolator, mis täidab tabuleeritud SP3 epohhide vahelise asukoha 9. astme Lagrange’i polünoomiga (standardne IGS-i praktika) ja pöörab selle ühisesse TEME tugisüsteemi; see on kättesaadav kui Propagator::Sp3Precise. IGS-i / analüüsikeskuse täppisorbiidifail saab nüüd juhtida sama geomeetria/nähtavuse/terviklikkuse töövoogu mis leviedastatud ja analüütilised levitajad. Valideeritud edasi-tagasi tsükkel: SP3-sse kirjutatud ja interpolaatori kaudu uuesti loetud Kepleri orbiit ühtib algsega sõlmedes meetri murdosa täpsusega ja < 100 m intervalli keskel. Kella interpoleerimine on järgmine.
  • GLONASS leviedastatud efemeriid (täiendab multi-GNSS RINEX nav-i). Uus moodul glonass: GLONASS ei edasta Kepleri elemente, vaid PZ-90 Maaga seotud olekuvektorit (asukoht, kiirus, Kuu-Päikese kiirendus). parse_glonass_nav loeb RINEX 3 R kirjeid ning satelliidi asukoht mis tahes ajahetkel saadakse GLONASS ICD liikumisvõrrandite 4. järku Runge–Kutta integreerimisega (tsentraalne gravitatsioon + J2 + Maa pöörlemise Coriolise/tsentrifugaalliikmed + leviedastatud kiirendus). Kättesaadav kui Propagator::Glonass, nii et GLONASS-i satelliidid liiguvad konstellatsiooni/nähtavuse/terviklikkuse töövoos koos Kepleri süsteemidega; üks rinex konstellatsiooniplokk võib nüüd segada GPS-i, Galileot, QZSS-i, BeiDoud ja GLONASS-i.
  • Multi-GNSS RINEX navigatsioon (GPS, Galileo, QZSS, BeiDou). RINEX 3 navigatsiooni parser dekodeerib nüüd Galileo (E), QZSS-i (J) ja BeiDou (C, MEO/IGSO) kirjeid GPS-i (G) kõrval — neil on ühine Kepleri paigutus ja kasutaja algoritm — kusjuures igaüht hinnatakse oma gravitatsioonikonstandi ja Maa pöörlemiskiirusega (Galileo/BeiDou μ, BeiDou Ω̇ₑ). Segakonstellatsiooni fail annab neid kõiki, mis liiguvad konstellatsiooni/nähtavuse/terviklikkuse töövoos kui Propagator::Rinex. BeiDou geostatsionaarsed satelliidid kasutavad teistsugust koordinaatide pööret ning jäetakse vahele, kuni on olemas etalonandmestik, mille vastu valideerida. Kirjete läbijalutaja kasutab süsteemipõhiseid reaarve, parandades varjatud vea, kus neljarealisi GLONASS-i/SBAS-i kirjeid jäeti vahele, nagu oleksid need kaheksarealised. GLONASS (olekuvektori mudel) on järgmine.
  • SP3-c/d täppisefemeriidi lugeja ja kirjutaja. Uus moodul sp3 parsib IGS-i/analüüsikeskuse SP3 täppisorbiidifaile (parse_sp3) — järeltöödeldud ECEF asukoha/kella toodet, mida PPP mootorid (Ginan, RTKLIB, gLAB) käsitlevad etalonina — struktureeritud Sp3File kujule (päis, epohhiruudustik, satelliidipõhine asukoht km→m, kell µs ja kiirus dm/s→m/s V toodete puhul), säilitades SP3 vigaste väärtuste markerid. Vastupidine suund on samuti kaetud: Sp3File::from_propagators ehitab SP3 levitatud konstellatsioonist (TEME→ECEF epohhi kohta) ja to_sp3_string serialiseerib selle, nii et Kshana orbiite saab eksportida vormingus, mida välised PPP tööriistad sisse loevad — lugemise↔kirjutamise edasi-tagasi tsükkel. Epohhide interpoleerimine ja SP3 levitaja allikas on järgmised.
  • RINEX leviedastatud efemeriid käivitatava konstellatsiooni allikana. Konstellatsioon aktsepteerib nüüd lisaks olemasolevale valikule tle ka sisseehitatud plokki rinex (RINEX 3 GPS navigatsiooniteksti), nii et tegelik leviedastatud fail juhib stsenaariumi lõpust lõpuni CLI-st, Pythonist või brauserisisesest mänguväljakust — RINEX sisse, PNT geomeetria välja. Uus scenarios/orbit-rinex.toml demonstreerib GNSS-i kättesaadavust ja DOP-i kaheksa GPS-satelliidiga, mis on ehitatud otse leviedastatud kirjetest. (Ainult GPS LNAV; multi-GNSS ja SP3 on järgmised.)
  • RINEX leviedastatud efemeriid levituse allikana. Parsitud RinexEphemeris teisendub nüüd väärtuseks orbit::Propagator (Propagator::Rinex): asukoht on IS-GPS-200 leviedastatud orbiit, mis on ECEF-ist pööratud ühisesse TEME inertsiaalsesse tugisüsteemi (sv_position_teme, lisasekundi suhtes õige GPS→UT1 ajaga), kiirus tsentraalse lõppdiferentsiga ning Kepleri orbiidiperiood. Tegelikud GPS leviedastatud andmed saavad nüüd juhtida sama geomeetria, nähtavuse ja terviklikkuse (RAIM) töövoogu mis analüütilised SGP4/Kepleri levitajad. (Pole veel kättesaadav RINEX-faili stsenaariumi liigina — see ning multi-GNSS/SP3 on järgmised.)

0.9.2 - 2026-06-03#

Lisatud#

  • Arhiivi DOI. Väljalasked deponeeritakse nüüd Zenodosse ja neile omistatakse tsiteeritav DOI.

0.9.1 - 2026-06-03#

Muudetud#

  • Dokumentatsioon. README on ajakohastatud institutsionaalsele tasemele: kogu v0.9.0 pinu võimekuste ülevaade, jaotis Versioonihaldus ja väljalasked, puhas päis uue märgiga ning lühike olekurida. Mootori muudatusi pole.

0.9.0 - 2026-06-03#

See väljalase lisab 0.8.0 SGP4 aluse peale kolm olulist võimekuse valdkonda: tõeline kolmeteljeline strapdown INS, lõdvalt seotud GNSS/INS veaoleku EKF suletud ahela tagasisidega, tõeline hetktõmmise ja lahenduste eraldamise (ARAIM-laadne) RAIM koos HPL/VPL-iga ja käivitatav stsenaarium integrity, ning GNSS-vormingute koostalitusvõime esimene samm (RINEX-3 GPS efemeriidi sissevõtt).

Lisatud#

  • RINEX 3 GPS navigatsioonisõnumi parser (src/rinex.rs). Esimene samm GNSS-vormingute koostalitusvõime suunas: parse_nav loeb RINEX 3.x navigatsioonifaili ja dekodeerib iga GPS (G) leviedastatud efemeriidi kirje — kaheksarealise SV/epohhi + BROADCAST ORBIT ploki — Kepleri elementide ja kella paranduste kirjeks RinexEphemeris, väljanimede ja ühikutega IS-GPS-200 järgi. Käsitleb Fortrani D-eksponendiga ujukomavormingut (parse_d) ja fikseeritud laiusega veeru paigutust; mitte-GPS süsteemide kirjed jäetakse vahele, mitte ei lükata tagasi, nii et segafail annab siiski oma GPS efemeriidid. Neli testi: D-eksponendi parsimine (sh tühikud ja vead), täielik kirje dekodeeritud teadaolevate väljaväärtuste vastu GPS poolsuurtelje terviklikkuskontrolliga (√A² ≈ 26 560 km), mitte-GPS kirjete vahelejätmine ja tühja faili juhtum.
  • GPS leviedastatud efemeriid → ECEF asukoht (src/rinex.rs). RinexEphemeris::sv_position_ecef(t_tow) hindab satelliidi Maaga seotud asukohta parsitud efemeriidist IS-GPS-200 §20.3.3.4.3.1 kasutaja algoritmi järgi: Kepleri võrrandi Newtoni lahendus ekstsentrilise anomaalia jaoks, teise harmoonilise laiuskraadi argumendi / raadiuse / kaldenurga parandused ning pööre ECEF-i, arvestades Maa pöörlemist alates etalonepohhist (spetsifikatsiooni nõutava GPS μ ja Ω̇ₑ ning nädalavahetuse tk voltimisega). Kolm testi: geotsentriline raadius jääb GPS vahemikku (≈ 26 560 km), Maaga seotud kiirus on ~3,9 km/s ja terve nädala kaugusel hindamine annab sama asukoha.
  • GPS SV kella nihe relativistliku paranduse arvestamisega (src/rinex.rs). RinexEphemeris::sv_clock_bias_s(t_tow) hindab leviedastatud kellapolünoomi af0 + af1·Δt + af2·Δt² ümber punkti Toc pluss relativistliku ekstsentrilisuse liikme F·e·√A·sin Ek (IS-GPS-200 §20.3.3.3.3.1). Uus EpochUtc::gps_time_of_week teisendab kirje kalendriepohhi GPS-i nädala ajaks Juliuse päeva aritmeetikaga alates GPS-i epohhist (1980-01-06) ning Kepleri lahendus jagatakse asukoha hindamisega. Testid: GPS-i nädala aeg pühapäeva/teisipäeva/laupäeva jaoks (nädalapiirid) ning kella nihe, kus domineerib af0, olemasoleva piiratud relativistliku liikmega. L1 grupiviivitust TGD kuvatakse, kuid seda tahtlikult sisse ei arvestata. Aus ulatus: allikas Propagator, Galileo/BeiDou/GLONASS ja SP3 jäävad järgmisteks sammudeks. (docs/CAPABILITY.md on vastavalt uuendatud.)
  • Kasutaja käivitatav stsenaariumi liik integrity (scenarios/integrity-raim.toml). RAIM-i kättesaadavuse võimekus on nüüd CLI-st/TOML-ist kättesaadav nagu iga teine pakett: kind = "integrity" parsib kirje IntegrityScenario (kasutaja orbiit, üks või mitu GNSS-i konstellatsiooni, kõrgusmask ja terviklikkuse seadistus (sigma, P_fa, P_md, AL_H, AL_V)), käivitab constellation_raim_availability ning väljastab epohhipõhise HPL/VPL kättesaadavuskaardi JSON-ina pluss isemajandava SVG — kaitsetasemed ajas häireläviede suhtes, rohelise/punase kättesaadavusribaga. kshana scenarios/integrity-raim.toml kirjutab JSON-i, diagrammi ja HTML-aruande. Kaasasolev stsenaarium (24 satelliidi Walker, 1 m kahesageduslik kaugusmõõtmine, APV-I piirid) annab kättesaadavuseks ~95 %; see dokumenteerib, et ühesageduslik RAIM ei täida ühe konstellatsiooni puhul vertikaalset APV-I piiri, mistõttu vertikaalseks juhtimiseks kasutatakse SBAS-i/kahesageduslikku/ARAIM-i. Testid katavad suunamise, kättesaadavuskaardi JSON-i ja SVG.
  • Käivitatav RAIM-i kättesaadavus konstellatsiooni kohta (src/raim.rs). Terviklikkuse moodulil polnud kutsujat — constellation_raim_availability teeb sellest tõelise lõpust lõpuni sisenemispunkti: igal ajaruudustiku epohhil levitab see nähtavad satelliidid (samade SGP4/Kepleri Propagator-idega, mida mootor kasutab), arvutab veatud kaitsetasemed ja hindab kättesaadavust horisontaalsete/vertikaalsete häireläviede suhtes, tagastades serde-ga serialiseeritava RaimAvailabilityReport (epohhipõhine n_visible/HPL/VPL/available pluss kättesaadavuse osa). RaimConfig koondab (sigma, P_fa, P_md, AL_H, AL_V) ning epohhipõhine raim_availability_epoch on kättesaadav kutsujatele, kes lahendavad oma geomeetria ise. Kolm testi: epohh, mis on APV-I piiride all kümne satelliidi geomeetrial kättesaadav, muudetud kättesaamatuks võimatult range piiriga, ning tasemed None alla viie satelliidi; ja lõpust lõpuni käitus 24 satelliidi Walker-konstellatsioonil, mis annab lõpliku kättesaadavuskaardi ja serialiseerub. (Kuus satelliiti — jääk-RAIM-i liiasuse alampiir — ei täida ausalt mitte APV-I-d isegi 1 m kaugusmõõtmise puhul; APV-I kättesaadavus vajab tihedamat geomeetriat, mida test kasutab.)
  • Stanfordi(-ESA) terviklikkuse diagrammi akumulaator (src/raim.rs). Standardne viis terviklikkuse monitori kokkuvõtmiseks paljude epohhide peale: see kujutab tegelikku asukohaviga (x) kaitsetaseme (y) vastu ja klassifitseerib iga epohhi diagonaali y = x ja häireläve järgi väärtuseks Available (PL piirab viga, AL piires), SystemUnavailable (PL piirab viga, kuid ületab AL-i — ohutu, kasutamatu), MisleadingInformation (PL < viga ≤ AL) või HazardouslyMisleadingInformation (PL < viga ja viga > AL — ohtlik rike). classify_stanford on puhas klassifikaator; StanfordDiagram akumuleerib (error, PL) punkte fikseeritud häireläve vastu, kuvades piirkondade arvud, kättesaadavuse, terviklikkuse sündmuste summad ja serde-ga serialiseeritavad punktid joonistamiseks/JSON-i eksportimiseks. Neli testi: iga piirkond (sh error == PL piiratud piir), arvu/kättesaadavuse akumuleerimine ja JSON-i edasi-tagasi tsükkel. See on RAIM-i kaitsetasemete aruandlusliides; selle ühendamine konstellatsiooni stsenaariumiga ja avaliku andmestiku vastu valideerimine jäävad teekaardi punktideks.
  • Lahenduste eraldamise (ARAIM-laadne) RAIM (src/raim.rs). Mitme hüpoteesiga terviklikkuse monitor olemasoleva jäägi/pariteedi hii-ruut snapshot_raim kõrval. Kõigi satelliitide nähtavuse vähimruutude lahenduse ja iga ühe satelliidi välistamise alamlahenduse jaoks moodustab see eralduse Δ_k = x_k − x₀ — nullkeskmise Gaussi jaotusega vea puudumisel kovariatsiooniga Cov(x_k) − Cov(x₀) (pesastatud hinnangute samasus, kehtib, kuna kõigi satelliitide nähtavuse lahendus on BLUE) — ning seega nii tuvastab vea kui ka identifitseerib vigase satelliidi (selle, mille välistamine annab suurima normaliseeritud eralduse). Horisontaalsed/vertikaalsed kaitsetasemed järgivad standardset MHSS-i eraldust PL = max(K_md·σ₀, max_k[K_fa·σ_ss,k + K_md·σ_k]), kus K_fa = Φ⁻¹(1−P_fa/2), K_md = Φ⁻¹(1−P_md). Uued sõltuvusteta normal_cdf/normal_quantile, mis on ehitatud mooduli olemasolevale regulariseeritud mittetäielikule gammafunktsioonile (erf(x) = P(½,x²)). Neli käsitsi tuletatud testi: normaaljaotuse CDF / kvantiil õpikuväärtuste vastu (Φ(1,95996)=0,975, 1e-7 saba = 5,1993, sümmeetria); veatu geomeetria, mis ei anna häiret ja annab lõpliku positiivse HPL/VPL-i; 60-σ üksiku satelliidi nihe, mis tuvastatakse ja identifitseeritakse õigesti (excluded_sv == 2); ning kuue satelliidi liiasuse alampiir. Sulgeb auditi lünga „tautoloogiline terviklikkus — pole tõelist RAIM/HPL/VPL-i“ (P0) algoritmi poolel; gLAB-andmestikuga valideerimine ja Stanfordi diagrammi akumulaator jäävad teekaardi punktideks.
  • Suletud ahelaga GNSS/INS integreerimine (src/fusion/closed_loop.rs). ClosedLoopInsGnss ühendab veaoleku EKF tuuma kolmeteljelise strapdown-mehhaniseerimisega: iga IMU valim korrigeeritakse jooksvate nihkehinnangutega, mehhaniseeritakse edasi ja EKF kovariatsioon propageeritakse ajas sobiva navigatsioonikontekstiga; iga GNSS asukoha/kiiruse lahend moodustab INS−GNSS innovatsiooni ning annab hinnatud asukoha, kiiruse, asendivea (ψ, kvaternioonpöördena) ja kiirendusmõõturi/güroskoobi nihked tagasi lahendusse, lähtestades veaoleku keskmise. Asendi tagasiside (mitte ainult nihked) on stabiilsuse jaoks vajalik — kalle ja kiirendusmõõturi nihe on seotud paar, nii et ühe korrigeerimine ilma teiseta hajub. INS-i ja GNSS-i võrreldakse kohalikus puutujatasandi NED tugisüsteemis, kasutades mehhaniseerimise enda kõverusraadiusi (uus mechanization::radii_of_curvature; NavState::omega_ie_n/omega_en_n on kättesaadavad). See on aus asendus hübriidpaketi tõe külge sundimise lähtestamisele. Kolm testi: suletud ahel, mis nullib sisestatud 8 m / −5 m asukohavea väärtuseni <0,1 m; abistatud lahendus, mis püsib meetrites piiratuna (<6 m) sõidutrajektooril, samal ajal kui vabalt jooksev INS hajub üle 100 m; ning verstapostietalon — liidetud lahenduse Monte Carlo asukoha RMS 60 s GNSS-i katkestuse jooksul ületab abita lahtise ahelaga dead-reckoning’u rohkem kui 2× (≈4× algväärtuste lõikes). Mooduli dokumenteeritud aus piirang: lõdvalt seotud režiimis on kiirendusmõõturi nihe ja kalle vaid nõrgalt eraldatavad (mõlemad seotud gravitatsiooni kaudu), nii et pakutav väärtus on piiratud, korrigeeritud olek ja puhas katkestusse sisenemine, mitte täpne inertsiaalne kalibreerimine; rikkam dünaamika ja tihedalt seotud laiendus jäävad teekaardi punktideks.
  • Lõdvalt seotud GNSS/INS veaoleku EKF tuum (src/fusion/gnss_ins_ekf.rs). 15-olekuline veaoleku laiendatud Kalmani filter — δx = [δp, δv, ψ, b_a, b_g] — strapdown-vea dünaamikaga Grovesi 2013 §14,2 järgi (erijõu/kalde sidestus, Coriolis, keha→nav nihke projektsioon, Gaussi–Markovi nihkemudelid), esimest järku diskreetse üleminekuga Φ = I + F·dt ning lõdvalt seotud asukoha+kiiruse mõõtmisuuendusega (H = [I₃ 0 0 0 0; 0 I₃ 0 0 0]) Joepi kujul. Sõltuvusteta tihe lineaaralgebra (Gaussi–Jordani pöördmaatriks, Joepi kovariatsiooniuuendus). Cargo-funktsioon tight_coupling blokeerib dokumenteeritud, kuid veel realiseerimata pseudovahemaa/Doppleri uuenduse. 7 testi käsitsi tuletatud eeldustega: kaldsümmeetria/ristkorrutise samasus, kontrollitud 3×3 pöördmaatriks, kovariatsioon püsib ennustamisel sümmeetrilise/PSD-na (ja abita asukohamääramatus kasvab), asukohalahend vähendab asukoha kovariatsiooni, teadaoleva asukohavea täpne taastamine analüütilise Kalmani võimenduse P/(P+R) korral ning väiksemad korrektsioonid suurema mõõtmismüra korral. See on tuum, mis asendab hübriidpaketi lahtise ahelaga tõe külge sundimise lähtestamise suletud ahelaga tagasisidega (paketi ühendamine + NaveGo valideerimine järgnevad).
  • Deterministlik IMU veamudel 3-teljelisele strapdown-navigaatorile (src/inertial/imu_errors.rs). ImuErrorModel moonutab tõelise keharaami paari (ω, f) mõõdetuks viie süstemaatilise kategooria kaudu (IEEE Std 952-1997 §A.2; Groves 2013 §4,3, tabel 4,1): skaalategur (teljepõhine ppm võimenduse viga), nihkeviga / ristsidestus (triaadi mitteortogonaalsus väljaspool diagonaali), g-tundlikkus (erijõuga võrdeline güroskoobi kiirusnihe), kvantimine (ümardamine väljundi LSB-le) ja kiirusrambi (ajas lineaarne triiv — kolmas Alani piirkond), pluss konstantne sisselülitusnihe. Iga liige on vaikimisi null, mistõttu ImuErrorModel::ideal() on läbipaistev läbilase ja olemasolevaid stsenaariume see ei mõjuta. Igal veaallikal on isoleeriv test (skaala lineaarne täpsusega <0,01%, ristteljeline nihe üle VRW põhja, g-tundlikkuse nihe, LSB ruudustik, lineaarne ramp) ning lõpust lõpuni test juhib moonutatud IMU-st mehhaniseerimise kaudu navigatsiooniviga. Modelleerimata: vibratsiooni rektifikatsiooniviga, temperatuurigradiendi triiv. (Kaasasolev stsenaariumipakett inertial käitab endiselt varasemat 1-DOF skalaareelarvet; see mudel toidab 3-teljelist teeki.)
  • Coning ja sculling kompensatsioon strapdown-integraatorile. Asenditee lisab kahe valimi coning_increment (½ Δθ_prev × Δθ_cur); 30 Hz jämesagedusega (5 valimit tsükli kohta) 5 Hz coning-keskkonna integreerimise kohta on kontrollitud, et see jälgib peenisagedusega tõde korrektsiooniga ≥ 3× paremini kui naiivne juurdekasvude summeerimine. Kiiruse tee lisab sculling_increment (½ Δθ × Δv, Groves valem 5,82) ja lahendab keha kiiruse juurdekasvu uue juurdekasvupõhise uuenduse NavState::step_increments kaudu, kasutades kehasuhtelist pööret Δθ_rel = Δθ_b − C_n^b ζ, nii et Maaga seotud platvormil ei teki valesculling’ut, samal ajal kui tõeline vibratsioon käivitab täieliku liikme.
  • Täielik kolmeteljeline strapdown-mehhaniseerimine NED tugisüsteemis (src/inertial/mechanization.rs). NavState { q, v_ned, p_llh } edastatakse sammuga step(gyro_b, accel_f_b, dt) standardsete maapealse tugisüsteemi NED võrranditega (Groves §5,4): keha→NED asend korrigeeritud inertsiaal-nav kiiruse ω_in = ω_ie + ω_en (Maa pöörlemine + transpordikiirus) järgi; erijõud lahendatud keha→NED DCM-i kaudu; kiirus integreerib v̇ = f_n − (2 ω_ie + ω_en) × v + g_n (Coriolis/transport + gravitatsioon); ning geodeetiline asukoht meridiaani/põikisuunalise kõverusraadiuse kaudu. Gravitatsioon on WGS-84 kinnine Somigliana normaalgravitatsioon (loodi gravitatsioon) NIMA vaba õhu kõrgusparandusega — mitte kunagi kõvakodeeritud konstant. See on tõeline kolmeteljeline navigaator, mis asendab 1-DOF skalaarse veaeelarve tee. Kontrollitud füüsikaliste invariantidega: pöörlevale Maale kinnitatud platvorm 45°N juures (tajub Maa pöörlemiskiirust + 1 g) püsib 60 s jooksul 1 mm piires; horisontaalne põhja suunatud erijõud annab v_N ≈ a·t ja ½ a t² nihke; normaalgravitatsioon ühtib teadaolevate ekvaatori/pooluse/45° pinnaväärtustega ja vaba õhu langusmääraga.
  • Kolmeteljeline asendiesitus strapdown INS-ile (src/inertial/attitude.rs). Ühikkvaternioonitüüp Quaternion (skalaar ees, Hamiltoni konventsioon), mis kannab keha→nav pööret, DCM-vaatega (to_dcm/from_dcm Shepperdi meetodil), Hamiltoni korrutise, telje-nurga ja pöördevektori (täpne eksponentkaart) konstruktoritega ning kvaternioonkinemaatikaga — nii esimest järku RK kiiruse uuendus (q̇ = ½ q ⊗ ω) kui ka coning-korrigeeritud pöördevektori uuendus. Kahe valimi coning_increment (Savage / Bryan–Lewantowski, ½ Δθ_prev × Δθ_cur) annab pöörlemiskiiruse ristsidestuse liikme, mille skalaarne dead-reckoning välja jätab. See on asendi alus täielikule 3-teljelisele mehhaniseerimisele, mis asendab varasema 1-DOF veaeelarve tee. Kontrollitud kinniste pööretega: konstantse kiirusega levik ühtib telje-nurga kvaternioniga 1e-6 täpsusega, DCM-id on ortonormeeritud ühikdeterminandiga ja coning kaob ühe telje liikumise korral. (src/inertial.rs on nüüd mooduli kataloog src/inertial/; avalik tee crate::inertial on muutmata.)
  • Geodeetiliselt korrektne maajaama nähtavus (src/frames.rs). elevation, is_visible ja visible_count arvutavad satelliidi kõrguse maajaama silmapiiri kohal WGS-84 ellipsoidi normaali (tõelise kohaliku vertikaali) suhtes, mitte geotsentrilise radiaali suhtes — need erinevad kuni ~0,19° geodeetilise kõrvalekalde võrra, mis on piisav, et lülitada silmapiiri lähedased satelliidid kõrgusmaski sisse või välja. Kontrollitud lõpust lõpuni (Walker-konstellatsioon levitatud, pööratud TEME→ECEF ja loetud geodeetiliselt jaamast) ning geotsentrilise lähenduse vastu.

Muudetud#

  • CI töökindlus. Töö test-python-bindings ehitab nüüd wheeli abil PyO3/maturin-action (manylinuxi konteiner) toore hosti maturin build asemel, kõrvaldades vahelduva rustfmt-preview/cargo-fmt rustupi konflikti jooksutuspildil. Töö deny paigaldab cargo-deny eelehitatud binaarfailina abil taiki-e/install-action Dockeril põhineva cargo-deny-action asemel, eemaldades Docker Hubi registrist tõmbamise ajalõpu. Kumbki muudatus ei mõjuta tehtavaid kontrolle.

0.8.0 - 2026-06-02#

Lisatud#

  • Inertsiaalne kiirus on allavoolu kättesaadav. Propagator::velocity_eci ja Propagator::state_eci (tagastavad StateEci { r_m, v_m_s }) toovad analüütilise TEME kiiruse, mille SGP4 juba arvutab — varem kõrvale visatud — kutsujateni m/s-des; Orbit::velocity_eci annab Kepleri teele ühtse kiiruse. AIAA 2006-6753 kontrolltest kontrollib nüüd kiirust ka iga etalonrea puhul (halvim kiiruse viga 1.85e-9 km/s kõigi 666 oleku üle) ja fikseerib võrreldud ridade arvuks täpselt 666.

  • Rangem, paanikavaba TLE parsimine. Read peavad olema ASCII ja neid lõigatakse ohutult (enam pole baidiindeksi paanikaid mitmebaidise sisendi korral); elemendid kontrollitakse vahemiku suhtes (kaldenurk, ekstsentrilisus, keskmine liikumine); veeru 69 kontrollsummat saab jõustada kaudu ParseOpts { strict_checksum } / parse_propagators_opts ja uue lipuga strict_checksum väljal ConstellationCfg (vaikimisi leebe).

  • Alani hälbe kõver väljundis. Iga kellajooks annab nüüd välja adev_curve ([{tau_s, adev, n_samples}]) ning brauseri mänguväljak joonistab log-log diagrammi „Kella stabiilsus (ADEV)“.

  • Ajaruudustiku sisendi valideerimine. TimeCfg::validate lükkab tagasi mittelõpliku, nulli, negatiivse või liiga suure ajaruudustiku (sammu, mis on kestusest suurem, või rohkem kui MAX_TIME_STEPS valimit) enne mis tahes mälu eraldamist, nii et väära kujuga stsenaarium tagastab vea, mitte ei põhjusta paanikat ega ammenda mälu.

  • Monte Carlo ansamblid inertsiaalpaketile. runs = N inertsiaalstsenaariumil käivitab N algväärtust ja annab iga mõõdiku keskmise, standardhälbe, protsentiilid ning protsentiili-alglaadimisega 95% usaldusvahemiku (ensemble). Iga inertsiaalkäitus kannab nüüd lippu monte_carlo, nii et ühe realisatsiooni kvaliteedinäitajat ei peeta enam ekslikult jaotuseks. (CEP/2DRMS-i ei esitata tahtlikult — need nõuavad teekaardil olevat 3-telgset mudelit.)

  • Juhitud mänguväljaku režiim. Brauseri mänguväljak ei viska enam toorele TOML-i seinale: „Alusta siit“ riba ühe klõpsuga stsenaariumikaartidega laadib ja käivitab läbitöötatud näite, liugurid avavad universaalsed seaded (algväärtus, ajastuse lävi) TOML-i puutumata, märkus „Kuidas seda lugeda“ selgitab tulemust ning täielik TOML on ühe kokkuvolditava jaotise taga. Iga käitust saab jagada — Kopeeri jagamislink kodeerib kogu stsenaariumi URL-i fragmenti (midagi ei laadita üles), nii et link taastoodab täpselt sama käituse laadimisel. Koodek on ühiktestitud (web/share.test.mjs, käivitatakse CI-s).

  • N-mõõtmelised parameetrite pühkimised (src/sweep.rs). nd_sweep hindab mõõdikut mitme SweepAxis vahemiku täielikul Descartes’i korrutisel (mitme parameetriga kompromissuuring) reapõhises järjekorras, deterministlikult. Lisanduv — olemasolev 1-D pühkimise API on muutmata. Sõlmepõhised alglaadimisega usaldusvahemikud ja üldistamine väljaspool kellapaketti jäävad teekaardile.

  • Tõeline hetktõmmise RAIM (src/raim.rs). Ehtne asukohadomeeni vastuvõtja autonoomne terviklikkuse seire: see ehitab vaatejoone geomeetria nähtavate satelliitideni, moodustab vähimruutude lahenduse ja jäägid, käitab χ² jääkide vea tuvastamise testi (täpne lävi sõltuvusteta mittetäielikust gammafunktsioonist χ²/mittetsentraalsest χ²-st) ning arvutab tõusupõhised horisontaalsed ja vertikaalsed kaitsetasemed (HPL/VPL) seadistatud P_fa/P_md jaoks tuletatud tuvastamata jäänud sündmuse nihkega. See erineb stsenaariumi töövoo filtri sisemise kooskõla terviklikkuse näitajast ja ei ole sellega veel ühendatud; vea välistamine, häireläve/P_HMI eelarvestamine ja ARAIM jäävad teekaardile.

  • Sageduse stabiilsuse komplekt: MDEV, TDEV, HDEV + usaldusvahemikud (src/allan.rs). Kattuva ADEV kõrval: modifitseeritud Alani hälve (eristab valget faasimüra flicker-müra omast), ajahälve (TDEV = tau/sqrt(3) * MDEV) ja Hadamardi hälve (tõrjub lineaarse sageduse triivi täpselt välja ja koondub lahknevate punase müra tüüpide korral). χ²-põhised usaldusvahemikud (deviation_ci) kasutavad sõltuvusteta normaal-/χ²-kvantiilide paari (Acklam + Wilson-Hilferty) konservatiivse mittekattuva edf-iga; mürategundispetsiifiline edf ja Stable32 arvuline vastavus jäävad teekaardile.

  • Tugisüsteemi taandamine (src/frames.rs). GMST-põhine TEME↔ECEF pööre (sama IAU-1982 tähtajaga nagu levitaja), täpne WGS-84 geodeetiline↔ECEF Bowringi algväärtustatud iteratiivse pöördteisendusega (masinatäpne kõigil kõrgustel, sh MEO/GEO) ning geodeetiline maajaama vaatleja, mis tagastab asimuudi / kõrguse / vahemaa kohalikus Ida-Põhja-Üles tugisüsteemis. Poolusliikumist ja kaaresekundi-alust nutatsiooni ei rakendata (ainult GMST, alla kilomeetri maapinnajäljel); ITRF-täpne CIO ahel on teekaardil.

  • Ajaskaalade alus (src/timescales.rs). Sõltuvusteta Juliuse kuupäeva API (Gregoriuse tsiviil ↔ JD, MJD), täielik IERS-i täisarvuliste lisasekundite ajalugu (UTC↔TAI, 10 s aastal 1972 kuni 37 s alates 2017), defineeritud TAI→TT nihe, UT1 parandus antud DUT1 kaudu ja IAU-2000 Maa pöörlemisnurk. See on ajaline alus, mille peal Maaga seotud tugisüsteemi taandamine (kavandatud) seisab. Ajahetked on ühe-f64 Juliuse kuupäevad (~50 µs eraldusvõime praeguse epohhi lähedal; kaheosaline JD on teekaardil) ning enne 1972. aastat kehtinud kummisekundi ajajärku ei modelleerita — mõlemad on moodulis dokumenteeritud.

  • Reprodutseeritavus ja päritolu. Deterministlik CycloneDX SBOM-generaator (scripts/gen-sbom.sh) ning SLSA ehituspäritolu atesteering väljalaskebinaarile ja SBOM-ile; väljalaske tööriistaahel on CI-ga kooskõlas fikseeritud. Determinismi garantiid, platvormideülene libm hoiatus ja kuldfikseerimise lähenemine on dokumenteeritud failis docs/REPRODUCIBILITY.md.

  • Omadustepõhised ja fuzz-testid (tests/property.rs). Deterministlikud juhuslikustatud testid (uut sõltuvust pole) kinnitavad invariante tuhandete sisendite üle: TLE ja stsenaariumi parserid ei tekita kunagi paanikat prügi, mitte-ASCII, mutatsiooniga ega kärbitud sisendi korral; TimeCfg::validate ei tekita kunagi paanikat NaN/inf/negatiivsete ruudustike korral; TLE kontrollsumma on kooskõlas ja puudutab ainult veergu 69; geodeetiline↔ECEF edasi-tagasi tsüklid ning TEME→ECEF pööre säilitavad normi kogu maakera ulatuses ja laias kõrgusvahemikus.

Muudetud#

  • Kuldtestid fikseerivad nüüd kvaliteedinäitajad väli-välja haaval nelja etalonstsenaariumi jaoks (tolerantsiga, mis neelab platvormideülese libm kõikumise), asendades varasemad ainult võrratustel põhinevad kontrollid, nii et vaikne arvuline regressioon tabatakse kohe kinni.
  • Tulemusartefaktides olev schema_version tõsteti väärtuselt 0.1 väärtusele 0.7 (see oli külmutatud, samal ajal kui mootor arenes edasi).
  • cargo-deny keelab nüüd (mitte ei hoiata) tagasi tõmmatud (yanked) sõltuvusi.
  • Uued dokumendid: CAPABILITY.md (aus ulatuse kaart), SCHEMA.md (tulemusväljade teatmik), INTEGRITY.md, QUANTUM-MODELS.md, REAL_TLE_GUIDE.md. CI kaitse annab vea, kui README versioonimärk ei ühti failiga Cargo.toml.

0.7.0 - 2026-06-02#

Lisatud#

  • SGP4/SDP4 orbiidi levitamine. Standardse lihtsustatud häiringute levitaja täielik sõltuvusteta realisatsioon — Maa-lähedane SGP4 koos kaugkosmose SDP4 laiendusega (Kuu-Päikese sekulaarsed ja perioodilised häiringud ning 12 h / 24 h geopotentsiaali resonants). See on valideeritud ametlike AIAA 2006-6753 („Revisiting Spacetrack Report #3“) kontrollvektorite vastu: kõik 666 etalonolekut Maa-lähedastel, kaugkosmose-, resonants- ja veakoodijuhtudel ühtivad halvima asukohavea korral umbes 4 mm täpsusega. See on mudel, mille vastu kahe rea elemendikomplektid on defineeritud, seega esindab see reaalseid konstellatsioone — eelkõige ~12 h GNSS-orbiite, mis on kaugkosmose- ja resonantsed ning mida varasem kahe keha + J2 sekulaarne mudel ei suuda tabada.
  • Konstellatsiooni, mis on antud täielike kahe rea elemendikomplektidena (rida 1 + rida 2), levitatakse nüüd SGP4/SDP4-ga; konstellatsioon, mis on antud ainult rea 2 elementidena, säilitab analüütilise Kepleri kahe keha levituse muutmata kujul. Neid kahte vormi saab ühes plokis segada. Uus etalonstsenaarium orbit-sgp4-gps.toml (GPS-laadne MEO konstellatsioon reaalses kahe rea vormingus, levitatud SGP4-ga) — pane sisse praegune Celestraki „gps-ops“ komplekt, et uurida töötavat konstellatsiooni.

0.6.0 - 2026-06-02#

Lisatud#

  • Aktiivse spuufimisrünnaku demonstraator. Uus stsenaariumi liik spoof süstib kasvava vale aja spuufimise ja käivitab iga kella kellaabistatud terviklikkuse monitori, teatades, kas ja millal spuufimine tuvastatakse ning kas see jõuab töönõudeni tuvastamata — muutes Turvalisuse kvaliteedinäitaja konkreetseks ründe/kaitse demonstratsiooniks. Uus etalonstsenaarium spoof-attack.toml.
  • Mitme konstellatsiooni kättesaadavus. Orbiidistsenaarium võib ühendada mitu konstellatsiooni (loend [[constellations]] esmase [constellation] kõrval) multi-GNSS kättesaadavuse ja täpsuse halvenemise teguri jaoks — nt GPS pluss Galileo. Uus etalonstsenaarium orbit-multignss.toml.

0.5.0 - 2026-06-02#

Lisatud#

  • HTML tulemuskaardi aruanne. Iga käitus loob nüüd ka isemajandava, kaubamärgiga HTML tulemuskaardi — ühe rea kokkuvõtte, diagrammi (manustatud inertse data-URI pildina) ja täieliku JSON-i — mille CLI kirjutab JSON-i ja SVG kõrvale. Jagatav ühefaililine artefakt uuringu väljundiks või lisaks.
  • Ühine sensorliitmise hindaja. Uus stsenaariumi liik fusion käitab ühte rekursiivset Kalmani filtrit navigatsioonilahendusena — liites kella oleku [phase, frequency] ja asukoha oleku [position, velocity], mida distsiplineerib GNSS (õppides sageduse nihke ja kiiruse) ning mida katkestuse ajal abistab optiline aja edastamine — sõltumatute ennustajate komponeerimise asemel. See annab liidetud ajastuse/asukoha holdover’i ja ühise kovariatsiooni terviklikkuse. Uus etalonstsenaarium fusion-pnt.toml.
  • Täielikum IMU müramudel. Kiirendusmõõtur modelleerib nüüd allesjäänud Alani dispersiooni liikmed lisaks konstantsele nihkele ja kiiruse juhuslikule käimisele: nihke ebastabiilsus (1/f flicker-põhi standardse Alani nihke ebastabiilsuse koefitsiendi juures, taaskasutades kella flicker-sünteesi) ja kiirenduse juhuslik käimine. Uued valikulised inertsiaalstsenaariumi väljad bias_instability ja q_aa; GNSS-i uus lahend kalibreerib jääknihke triivi uuesti.
  • Reaalne konstellatsiooni geomeetria TLE-dest. Konstellatsiooni saab anda kahe rea elemendikomplektide plokina (standardne NORAD/Celestraki vorming) välja tle kaudu, nii et kättesaadavus ja täpsuse halvenemise tegur kasutavad reaalse konstellatsiooni avaldatud geomeetriat sünteetilise Walkeri mustri asemel. Mootor loeb iga TLE keskmised Kepleri elemendid ja levitab neid kahe keha mudelina — mitte SGP4-ga — mis on põhjendatud ühisest epohhist lähtuva hetktõmmise uuringu jaoks. Uus etalonstsenaarium orbit-real-tle.toml.

0.4.0 - 2026-06-02#

Lisatud#

  • Kompromissuuringu parameetrite pühkimised. Uus stsenaariumi liik sweep varieerib ühte parameetrit (threshold_ns, duration_s, quantum_q_wf või classical_q_wf) lineaarses või logaritmilises vahemikus ja salvestab valitud kvaliteedinäitaja igas punktis mõlema kella jaoks, andes võrdlusdiagrammi „kuidas holdover skaleerub kella stabiilsusega?“, mida disainikompromiss vajab. Uus etalonstsenaarium sweep-clock-stability.toml.
  • Monte Carlo usaldusribad. Kella holdover’i stsenaarium võib käitada palju realisatsioone (uus valikuline väli runs): iga kvaliteedinäitaja esitatakse siis keskmisena 5.–95. protsentiili hajuvusega ning diagramm varjutab iga kella mediaani ümber 5–95% veaümbriku. Ühekordne käitus jääb vaikeväärtuseks. Uus etalonstsenaarium clock-ensemble.toml.
  • Ekstsentrilised orbiidid ja J2 triiv. Orbiiditüüp on nüüd täielik Kepleri orbiit (poolsuurtelg, ekstsentrilisus, kaldenurk, RAAN, perigee argument, keskmine anomaalia), mida levitatakse Kepleri võrrandi lahendamisega, valikulise sekulaarse J2 sõlme regressiooni ja apsiidide pretsessiooniga. Uued valikulised stsenaariumi väljad eccentricity, argp_deg ja j2 ning etalonstsenaarium orbit-molniya.toml (12 h väga ekstsentriline kriitilise kaldega kasutaja). Ringorbiidid säilitavad algse kinnise valemi tee bitthaaval.
  • Hübriid- (kombineeritud PNT) pakett annab nüüd Terviklikkuse ja Turvalisuse, nii et kõik neli paketti katavad täieliku töönäitajate kvaliteedinäitajate komplekti. Terviklikkus on ajastuskanali kaitsepiiri sisaldumine Kalmani hindajast, mis on distsiplineeritud tõe külge, kuni GNSS on nominaalne, ja uuesti ankurdatud (lõdvemalt) iga optilise uuesti sünkroniseerimise juures; selle piir sisaldab lingi mõõtmismüra põhja, nii et kella, mis on lingist palju parem, hinnatakse edastatud lahenduse tegeliku müra suhtes. Turvalisus on kellaabistatud spuufimise tuvastamise skoor ajastusnõude suhtes.

Muudetud#

  • Väljalasketeated genereeritakse nüüd sildi kureeritud CHANGELOG-i jaotisest (scripts/changelog-extract.sh), nii et iga GitHubi väljalase toob esile muudatused toorete commitide loetlemise asemel.

0.3.0 - 2026-06-02#

Lisatud#

  • Turvalisuse kvaliteedinäitaja (varem täitmata): kellaabistatud spuufimise tuvastamise skoor kella holdover’i ja orbiidipakettide jaoks. See modelleerib terviklikkuse monitori, mis kontrollib GNSS-ist tuletatud aega vastu kella enda libistatud ennustust koherentse akna jooksul; tuvastamise põhi ühendab keskmistatud mõõtmismüra kella libisemise määramatusega, nii et vaiksem kell tuvastab väiksemaid ja aeglasemaid aja spuufimisi. Skoor esitatakse vahemikus [0, 1] ajastusnõude suhtes, täites kuus töönäitajate kvaliteedinäitajat.
  • Geomeetriast tuletatud asukohatäpsus orbiidipaketile: nähtavate satelliitide vaatejoone geomeetriast moodustab see disainimaatriksi ja selle kovariatsioonitegur Q = (HᵀH)⁻¹, andes täpsuse halvenemise tegurid (GDOP/PDOP/HDOP/VDOP/TDOP). Asukohatäpsus on asukoha DOP, skaleeritud seadistatava kasutaja-ekvivalentse vahemaa veaga (uus valikuline stsenaariumi väli sigma_uere_m). Orbiiditulemus kannab nüüd geomeetria kokkuvõtet (lahendiga valimite osa, parim ja mediaanne PDOP ning asukoha sigma).
  • Brauserisisene mänguväljak (web/), mis käitab mootorit kliendi poolel WebAssemblyna: vali etalonstsenaarium või redigeeri TOML-i, käivita see ning vaata kokkuvõtet, diagrammi ja täielikku JSON-i, ilma et midagi üles laaditaks. Töövoog pages ehitab ja avaldab selle GitHub Pagesis ning uus WebAssembly eksport summary toetab näitu.
  • Sildistatud y-teljed SVG diagrammidel: ruudustikujooned, numbrilised jaotusmärgised ja ühikute telje pealkiri (jagatud abifunktsiooni chart kaudu), nii et suurusjärgud on loetavad.
  • Paketi avaldamise töövoog (publish) crates.io, PyPI ja npm jaoks, kõik blokeeritud oma registri tokeni taha ja käivitatud avaldatud väljalaskega.

0.2.0 - 2026-06-02#

Lisatud#

  • Flicker (1/f) FM põhi kella veamudelile, sünteesitud logaritmiliselt jaotatud Ornstein-Uhlenbecki protsesside summana ja kalibreeritud nii, et lame Alani hälbe põhi asub seadistatava tasemel. Vaikimisi väljas; lubatakse kella kohta valikulise stsenaariumi välja flicker_floor kaudu.
  • Güroskoobi kanal inertsiaalmudelile: jääkgüroskoobi nihe ja nurga juhuslik käimine ajavad asendi (kalde) viga, mis seob gravitatsiooni horisontaalse erijõu veaga — strapdown-vea kasvu domineeriv mehhanism. Vaikimisi väljas; lubatakse sensori kohta valikuliste väljade gyro_bias ja q_arw kaudu.
  • Kaheolekuline (faas, sagedus) Kalmani kellahindaja täpse van Loani protsessimüra diskretiseerimisega. Teadaolevast olekust libisemine taastoodab täpselt analüütilise holdover’i vea kasvu (q_wf*T + q_rw*T^3/3) ning filter annab lisaks veebipõhise 1-sigma määramatuse piiri.
  • Kellajooks annab nüüd välja Terviklikkuse kvaliteedinäitaja (varem täitmata): katkestuse valimite osa, mille viga jääb filtri 3-sigma kaitsepiiri sisse, esitatud JSON-tulemuses ja CLI kokkuvõttes.
  • Geomeetriast tuletatud GNSS-i kättesaadavus: ringorbiidi levitamine, Walker-delta konstellatsiooni generaator ja vaatejoone nähtavus (Maa varjutus pluss kõrgusmask) annavad kättesaadavuse ajajoone tegelikust orbitaalgeomeetriast. Uus stsenaariumi liik orbit ja etalonstsenaarium orbit-gnss-challenged.toml (kosmoseaparaat GNSS-i kesta sees katkendliku katvusega).
  • Valikuline Pythoni laiendus (PyO3, abi3), mis avab run, run_full ja version, pakitud maturiniga (pyproject.toml) ning ehitatud Linuxile, macOS-ile ja Windowsile väljalaskesildi töövooga wheels. Sidestus on funktsiooniga blokeeritud valikuline sõltuvus: vaikeehitust, teste ja sõltuvusauditi lüüsi see ei mõjuta.
  • Valikuline WebAssembly moodul (wasm-bindgen), mis avab run, chart_svg ja version, ehitatud wasm-packiga funktsiooni wasm all; getrandom on sihtmärgiga blokeeritud, et kasutada platvormil wasm32 brauseri entroopiaallikat.
  • Jagatud api::run_toml suunamine, mida kasutavad CLI ja mõlemad sidestused, nii et käsurida ja sidestused ei saa lahknema hakata.

Muudetud#

  • Holdover’i hindamine on nüüd segmenditeadlik: katkestuste ajajooned jagatakse GNSS-i taasomandamise kohtades pidevateks segmentideks ja esitatud holdover on nende halvim (lühim) libisemine. Ühe katkestuse stsenaariumid on muutmata. Kehtib kella-, inertsiaal- ja hübriidhindajatele.
  • Inertsiaalmudeli esitatud stsenaariumi kind-id on nüüd inertial (varem accelerometer), mis kajastab kombineeritud kiirendusmõõturi ja güroskoobi kanaleid.

0.1.0 - 2026-06-01#

Esimene väljalase.

Lisatud#

  • Deterministlik simulatsioonimootor hübriidse kvant/klassikalise PNT jaoks: ühine veamudeli liides, deklaratiivsed GNSS-i kättesaadavuse stsenaariumid, holdover’i / dead-reckoning’u hindajad ja kvaliteedinäitajate hindamine standardsete töönäitajate PNT kriteeriumide vastu. Tulemused on reprodutseeritavad väärtusest scenario + seed + engine version (versioonitud, ennast kirjeldav JSON stsenaariumi räsiga) ja renderdatud SVG diagrammidena. CLI suunab stsenaariumid stsenaariumi kind-id järgi.
  • Neli sensoripaketti, igaüks kalibreeritud avaldatud andmete järgi ja valideeritud standardse seose vastu:
    • Kella holdover — valge FM, juhusliku käimise FM ja lineaarne vananemine; valideeritud kattuva Alani hälbega (Riley, NIST SP 1065). Kiibimõõtmetega aatomkell vs strontsiumi optiline võrekell.
    • Inertsiaalne dead-reckoning — jääknihe + kiiruse juhuslik käimine, kahekordselt integreeritud asukohaveaks; valideeritud Grovesi vea kasvu seoste vastu. Külmaatomi- vs navigatsioonitaseme kiirendusmõõtur.
    • Aja edastamine — optilise vs raadiosageduslinki ajastuse värin → sünkroniseerimise korduvtäpsus → ühesuunaline kaugusmõõtmine.
    • Hübriidliitmine (tippülesanne) — kombineeritud PNT-komplekt, mis peab hoidma nii aega kui ka asukohta, valikulise optilise satelliitidevahelise aja edastamisega kella abistamiseks.
  • Üks tsiteeritud etalonstsenaarium paketi kohta kataloogis scenarios/, iga arvparameeter kannab eelretsenseeritud viidet provenance.
  • Reprodutseeritavuse ja hoidla hügieeni kaitsed; CI (vorming, clippy, testid, kaitsed, MSRV) ja sildiga blokeeritud väljalasketoru, mis käitab kõik kontrollid uuesti.
  • Dokumentatsioon: README arhitektuuridiagrammidega, valideerimisoleku aruanne, panustamisjuhend, turvapoliitika ja käitumisjuhend; Apache-2.0 litsents; probleemi-/PR-mallid ja Dependabot seadistus.
  • Kogu ulatuses tarnijaneutraalne; eelretsenseeritud teaduslikud ja metroloogilised viited on säilitatud.
  • Apache-2.0 litsentsi hügieen: SPDX päised kõigis lähtefailides, fail NOTICE kaubamärgi märkusega, Developer Certificate of Origin (DCO) allkiri panuste jaoks ning cargo-deny sõltuvuste litsentside/nõuannete jõustamine CI-s.
  • Open-core positsioneerimine (README): tasuta Apache-2.0 mootor pluss Ashforde OÜ pakutav kommertstugi, integreerimine ja suletud laiendused — hoitud teenustega, mitte litsentsitasudega.
  • CITATION.cff, et tarkvara oleks võimalik tsiteerida.