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

AlustamineMuuda GitHubisSource: docs/tutorials/README.md

Õpetused

Praktilised läbitöötatud näited, mis viivad „kaasasoleva stsenaariumi käivitamisest“ kuni „tulemuse kvantifitseerimise ja kaitsmiseni“. Iga kolmes õpetuses toodud arv on tegelik mootori väljund, ankurdatud välise (mitte-ringsõltuva) autoriteetse sõltumatu etaloni külge ja fikseeritud integratsioonitestiga (tests/tutorials.rs), nii et õpetus ei saa vaikselt lahkneda sellest, mida mootor tegelikult teeb. Kui õpetus ütleb, et optiline kell peab vastu 6600 s, siis test rikub ehituse sel päeval, kui see lakkab tõene olemast.

Kshana on positsioneerimise, navigatsiooni ja aja (PNT) simulaator. Õpetused kasutavad veel mõnda lühendit, millest igaüks on lahti kirjutatud seal, kus see esimest korda esineb: GNSS (ülemaailmne satelliitnavigatsioonisüsteem), GPS (Global Positioning System), CLI (käsurea liides) ja TOML (Tom's Obvious Minimal Language, stsenaariumifaili vorming).

Projektiga uus? Lugeda kõigepealt mõistete lühiülevaadet ja sõnastikku, seejärel tulla siia tagasi.

Kolm läbitöötatud näidet#

# Õpetus Mida õpitakse Stsenaariumi liik Raskusaste ~Aeg
1 Minu esimene orbiit: kus on GPS satelliidid propageerida tegelik GPS konstellatsioon, lugeda kättesaadavust, positsiooni täpsuse halvenemise tegurit (PDOP) ja positsiooni täpsust ning eksportida, kus satelliidid tegelikult on (SP3 täppisorbiidi vorming) orbit algaja 15 min
2 Kella holdover: kui kaua saab veerida käivitada GNSS-ita kella holdover, lugeda ajastuse kvaliteedinäitajat ja mõista selle taga olevat √(q_wf·T) kasvuseadust clock algaja 20 min
3 Kvant- ja klassikaline GNSS vastupidavus kokkuvõte: spuufimisdetektor (spoof) ja täielik liidetud PNT komplekt (hybrid) ning kuidas lugeda koos turvalisust / terviklikkust / dead-reckoning-it spoof + hybrid kesktase 35 min

Märkmikud#

Käivitatavad Jupyteri märkmikud, sünteetilistel andmetel ja avalike elemendikomplektidega, mida hoitakse ainult hoidlas, on failis notebooks/:

Märkmik Mida õpitakse
Laeva usaldus ja treening genereerida sünteetiline sillal NMEA voog skriptitud sündmusega, seejärel hinnata seda laeva usalduse monitooridega (nõuandev, mitte tüübikinnitust omav navigatsiooniseade)
Häirekaart ja marsruudi eksponeeritus kus navigatsiooniandmed on näinud halvenenud välja ja kui suurt osa marsruudist see puudutab
Compliance-vastendus ja katsestendi eksport milliste avalike raamistiku ridade jaoks käivituste kogum toetab tõendeid (supports evidence for) (mitte kunagi, et raamistik on täidetud), ning stsenaariumi liikumine ja sündmused eksporditud tekstina laboratoorse GNSS simulaatori jaoks (signaali ei kirjutata)
Kvant- ja klassikaline GDOP sama konstellatsiooni geomeetria kvant- ja klassikalise anduriga, võrreldud täpsuse halvenemise teguri järgi
Taevageomeetria horisondijoone all satelliidid, mida koht näeb tänava või kai horisondijoone all, nende DOP ja veaellips, elemendikomplektidest dateeritud taevas ja seemnestatud Monte Carlo kovariatsiooni vastu (MODELLED)

Kuidas õpetust käivitada#

Iga õpetus käivitab sama stsenaariumi kolmel viisil; valida see, mis sobib. Kõik kutsuvad ühte mootorit, nii et arvud on identsed (peegeldab README jaotist Usage).

Käsurida. CLI jaotab töö stsenaariumi kind-id põhjal ja kirjutab sisendi kõrvale <scenario>.result.json, <scenario>.chart.svg, <scenario>.report.html ja <scenario>.report.json (JSON on JavaScript Object Notation, SVG Scalable Vector Graphics, HTML HyperText Markup Language). Mõned liigid avaldavad ka reprodutseeritavuse tabeli kujul <scenario>.table.csv (komadega eraldatud väärtused): realtime-frame-eop, lunar-time-budget, lunar-jamming, leo-navmsg, telecom-timing ja moonlight-service-volume, kui eksporditav koht on määratud. Ükski kolmest õpetusest ei ole nende hulgas, seega seda faili siin ei näe.

cargo run -- scenarios/orbit-sgp4-gps.toml

cargo run -- ehitab CLI sellest väljavõtust. Paigaldatud binaarfailiga (cargo install kshana) on sama käsk kshana scenarios/orbit-sgp4-gps.toml. Ilma väljavõtteta on enamik kaasasolevaid stsenaariume binaarfailis sees: kshana example loetleb need (ja nimetab mõned, mis ei ole sisse ehitatud, koos põhjusega) ning kshana example orbit-sgp4-gps > orbit-sgp4-gps.toml kirjutab ühe välja: faili scenarios/orbit-sgp4-gps.toml koopia, millega binaarfail ehitati.

Python. Ehitada laiendus sellest väljavõtust üks kord maturiniga, aktiivses virtuaalkeskkonnas, seejärel kutsuda kshana.run:

pip install maturin
maturin develop --features python
import json, kshana
result = json.loads(kshana.run(open("scenarios/orbit-sgp4-gps.toml").read()))
print(result["geometry"]["best_pdop"])

pip install kshana paigaldab selle asemel avaldatud wheel-i. See võib sellest väljavõttest maha jääda: json.loads(kshana.list_kinds()) ütleb, milliseid stsenaariumi liike teie ehitus sisaldab.

Brauseri mänguväljak. Null paigaldust: avada Studio, valida stsenaarium, muuta parameetreid ja lugeda tulemust. Midagi ei laadita üles; mootor töötab kliendi poolel WebAssembly-na.

Õpetused toovad CLI käske, kuid igal käsul on ülaltoodud Pythoni ja mänguväljaku vaste. Iga tulemus on reprodutseeritav failist scenario + seed + engine version: käivitada kaks korda ja väljund on bitt-bitilt identne.

Annoteeritud õppestsenaariumid#

Iga võimekuse valdkonna jaoks on üks tugevalt kommenteeritud .toml asukohas scenarios/: kanoonilise stsenaariumi õppekoopia, milles iga väli on sisetekstina seletatud, viidatud sõltumatu etalon nimetatud ja oodatav üherealine kokkuvõte salvestatud # expected: kommentaarina. Väljade väärtused on identsed vanema omadega hoidla ülemise taseme kataloogis scenarios/ (tests/tutorials.rs võrdleb parsitud TOML-i), nii et dokumenteeritud väljund jääb tõeseks. Kuldsed räsid on samuti puutumata: kommentaar ei muuda kunagi stsenaariumi räsi.

Valdkond Õppefail Liik Tuletatud failist
Kella holdover scenarios/clock.toml clock scenarios/clock-holdover.toml
Orbiit ja geomeetria scenarios/orbit.toml orbit scenarios/orbit-sgp4-gps.toml
Terviklikkus (RAIM, vastuvõtja autonoomne terviklikkuse seire) scenarios/integrity.toml integrity scenarios/integrity-raim.toml
Turvalisus (spuufimine) scenarios/security.toml spoof scenarios/spoof-attack.toml
Hübriid-PNT scenarios/hybrid.toml hybrid scenarios/hybrid-pnt.toml
Inertsiaalne dead-reckoning scenarios/inertial.toml inertial scenarios/imu-deadreckoning.toml
Aja edastamine scenarios/timetransfer.toml timetransfer scenarios/timetransfer.toml
GNSS-i mõõtmisruum scenarios/gnss-sim.toml gnss-sim scenarios/gnss-sim-raim.toml

Turvalisuse õppefail kasutab sees faili kind = "spoof": turvalisuse kvaliteedinäitaja (1 − P_md, üks miinus tuvastamata jäämise tõenäosus) tekitatakse spuufimispaketiga. Faili nimi järgib võimekust (turvalisus), kind järgib paketti (spoof). Selle faili päis toob selle välja.

Stsenaariumi liikide täielik kataloog#

Mootor jaotab töö stsenaariumi kind-id põhjal. Allolev tabel loetleb kõige sagedamini kasutatavad liigid (ülalolevad kaheksa õpetuse valdkonda ja nende lähimad naabrid). See ei ole täielik hulk: src/api.rs::list_scenario_kinds() tagastab kõik 92 sisseehitatud liiki. See funktsioon (Pythoni ja WebAssembly (WASM) sidumistes list_kinds() ning käsureal kshana kinds --json) on autoriteetne, alati ajakohane kataloog ja SCENARIOS.md on selle genereeritud loend, üks jaotis liigi kohta koos nõutavate ja valikuliste TOML väljadega. tests/tutorials.rs::tutorial_scenarios_use_real_kinds tagab, et iga liik, mida õpetus dokumenteerib, on tegelik jaotusliik, nii et ükski rida selles tabelis ei saa nimetada liiki, mida pole olemas.

Liik Mida see teeb
clock Kella holdover spetsifikatsiooni vastu; valikuline Monte Carlo ansambel (runs > 1).
inertial 1-DOF (üks vabadusaste) inertsiaalne dead-reckoning GNSS katkestuse ajal.
orbit GNSS kättesaadavus + täpsuse halvenemise tegur (DOP) konstellatsioonist (Walker / kaherealised elemendikomplektid / RINEX, Receiver Independent Exchange vorming).
integrity Hetktõmmis / lahenduste eraldamine / ARAIM (täiustatud RAIM) horisontaalsete ja vertikaalsete kaitsetasemetega (HPL/VPL) + Stanfordi diagramm.
lunar-integrity Kuu lõunapooluse ARAIM kaitsetaseme läbimine LunaNet releekomplekti vastu.
timetransfer Optiline versus raadiosageduslik (RF) kahesuunaline aja/sageduse edastamine.
hybrid Hübriid-PNT kokkuvõte: kell + inertsmõõteseade (IMU) + aja edastamise abi.
fusion Ühine Kalmani sensorite liitmise PNT samade hübriidsisendite üle.
gnss-ins Lõdvalt ja tihedalt seotud GNSS/INS (inertsiaalnavigatsioonisüsteem) veaolekuga laiendatud Kalmani filter.
gnss-sim Mõõtmisvaldkonna pseudovahemaa simulatsioon (Klobuchari ionosfäär, Saastamoineni/Niell’i troposfäär) + RAIM.
jamming Sidelingi eelarvega segamine: segaja ja signaali suhe (J/S) → efektiivne kandja ja müra tihedus (C/N₀) → lukust väljalangemine.
spoof Stohhastiline aja spuufimise detektor (Neyman–Pearson / χ²₁) Monte Carlo valehäire ja tuvastamata jäämise tõenäosustega (P_fa/P_md).
sweep 1-D kompromissiuuringu pühkimine kellapaketi parameetri kohal.
sweep-nd Üldine N-D pühkimine mis tahes paketi kohal punktiga eraldatud TOML-võtmete / JSON-i mõõdikuteede kaudu.

Lisaks õpetustele: uuemad võimekused#

Kolm õpetust jäävad klassikaliste kella-, orbiidi- ja turvapakettide juurde. Mootor on neist kaugele kasvanud. Iga allolev rida on kaasasolev stsenaarium, mida saab käivitada sellisena, nagu see on (cargo run -- <file> või kshana <file>); kokkuvõte on esimene rida, mille kshana 0.35.0 selle kohta 2026-10-10 trükkis. Erinevalt õpetuste arvudest on need read ühe käivituse kirje, mida tests/tutorials.rs ei fikseeri: praeguse väärtuse saamiseks käivitada stsenaarium uuesti. Tulemused esitavad oma ulatuse (enamik kannab label) ja kontrollimaatriks ütleb, millised võimekused on VALIDATED välise sõltumatu etaloni vastu ja millised MODELLED.

Võimekus Stsenaarium Liik Kokkuvõtte esimene rida Loe edasi
L-riba spekter ja segamise juga scenarios/l-band-waterfall-jamming.toml spectrum scenario spectrum | 5 bands | 3 jammers | noise floor -202.0 dBW/Hz | worst band gps-l1ca min C/N0 3.2 dB-Hz (J/S 60.2 dB) SPECTRUM.md
Päikesesüsteem ühel epohhil scenarios/solar-system-tour.toml solar-system Solar system at 2026-09-28T00:00:00 (JD 2461311.50080 TDB), 18 bodies, observer Earth SCENARIOS.md
Positsioneerimine teise keha ümber scenarios/europa-surface-pnt.toml body-pnt Positioning around Europa — surface user, 12 relays at 4500 km, 171 epochs SCENARIOS.md
Konstellatsiooni kavandamine suures mahus scenarios/constellation-multi-gnss-coverage.toml constellation-design constellation-design: 102 satellites (GPS, Galileo, BeiDou, GLONASS) around the Earth; availability 100.00% (PDOP <= 6 at 10 deg mask), … CONSTELLATION-DESIGN.md
Kampaaniad: liigid aheldatud ühele ajajoonele scenarios/campaign-jam-spoof-holdover-integrity.toml campaign campaign f87a4a0e0bab | Jamming, spoofing, holdover and integrity: a chained mission | chain: 6 phases over 4570 s, … CAMPAIGNS.md
Üks LEO-PNT süsteem otsast lõpuni scenarios/leo-pnt-end-to-end.toml leo-pnt-chain LEO-PNT end to end, generic 1080 km constellation LEO-PNT.md
Liidetud MEO + LEO positsioneerimine scenarios/meo-leo-fused-pvt.toml leo-pvt LEO PVT (joint) at 40.42, -3.70 over 1800 s LEO-PNT-FUSION.md
LEO signaalid, läbilennud ja navigatsioonisõnumid scenarios/leo-band-trade.toml, scenarios/leo-pass-iridium.toml, scenarios/leo-navmsg-encode-decode.toml leo-signal, leo-pass, leo-navmsg LEO pass link budget, air user at 50.00, -30.00; 1 LEO satellite(s), 900 s window (läbilend) LEO-SIGNAL.md, LEO-PASS.md, LEO-NAVMSG.md
PPP konvergents LEO kihiga; 5G positsioneerimine scenarios/leo-ppp-convergence.toml, scenarios/ntn-5g-positioning.toml leo-ppp, ntn-positioning PPP convergence to 0.10 m horizontal / 0.10 m vertical, 12 runs per case, 96 GNSS satellites SCENARIOS.md
Vastupidavus: GNSS segatud, LEO kannab kasutajat scenarios/leo-resilience-gnss-jammed-leo-carries.toml campaign campaign 248395b851cc | GNSS jammed, LEO-PNT carries the user, integrity maintained | chain: 3 phases over 2100 s, … RESILIENCE-CROSSWALK.md
Vertikaalid: raudtee, meresõit, telekommunikatsioon, sõidukid, Arktika scenarios/leo-vertical-rail-maritime.toml (ja teised leo-vertical-* failid) campaign campaign 49575d27b696 | Railway and maritime with a LEO layer | chain: 3 phases over 2520 s, … CAMPAIGNS.md
Telekommunikatsiooni holdover ITU-T (International Telecommunication Union, Telecommunication Standardization Sector) G.8272 kellapiiride vastu scenarios/telecom-prtc-holdover-24h.toml telecom-timing telecom-timing: max|TE| 603.2 ns over 90000 s; eprtc-a-holdover FAIL, prtc-a FAIL; 100 ns budget exceeded after 8206 s (MODELLED) TELECOM-TIMING.md

LEO on madal Maa orbiit ja MEO keskmine Maa orbiit; PVT on asukoht, kiirus ja aeg; PPP on täppispunktpositsioneerimine; 5G on viienda põlvkonna mobiilistandard; TDB on barütsentriline dünaamiline aeg; JD on Juliuse kuupäev; TE on ajaviga.

CLI lisab mis tahes käivitusele kolm väljundit:

  • Aruanded. Iga käivitus kirjutab <scenario>.report.html ja <scenario>.report.json (vt REPORTS.md). kshana --study <suite.toml> käivitab stsenaariumide komplekti üheks .study.json ja .study.html, näiteks kshana --study scenarios/quantum-pnt-demonstrator.suite.toml.
  • Animation. kshana <scenario.toml> --animate <svg|html|frames|all> renderdab käivituse aegrea, näiteks --animate html failil scenarios/orbit-sgp4-gps.toml kirjutab orbit-sgp4-gps.animation.html. Liik, millel puudub diskreetitud ajatelg (näiteks solar-system), lükatakse veaga tagasi; vt ANIMATION.md.
  • Koostalitluse eksport. --export <czml|kml|geojson|stk|sigmf|all|list> kirjutab tulemuse teiste tööriistade jaoks: CZML (Cesium Language), KML (Keyhole Markup Language, Google Earthi jaoks), GeoJSON (geographic JSON), STK (Systems Tool Kit) efemeriid või SigMF (Signal Metadata Format) salvestus. --export list ütleb, millised vormingud stsenaariumi puhul kehtivad; SigMF kehtib ainult liigile spectrum. Orbiidipakett ekspordib ka --export-sp3, --export-omm ja --export-oem (CCSDS, Consultative Committee for Space Data Systems, orbiidisõnumid). Vt INTEROP.md.

Astmestatud harjutused#

Läbida redel. Iga aste on eelmisest raskem ja kaitstavam; etalonlahendused on failis exercises/.

Aste Eesmärk Mida teha Etalonlahendus
Aste 1 — käivitada ja lugeda käivitada kaasasolev stsenaarium muutmata kujul ja lugeda üks kvaliteedinäitaja Käivitada scenarios/clock-holdover.toml; trükkida kvant- ja klassikaline holdover_s. CLI, mänguväljak või üherealine Pythoni kutse. exercises/tier1_run.py
Aste 2 — muuta ja pühkida muuta üht parameetrit ja jälgida monotoonset mõju Pingutada kella spetsifikatsiooni (threshold_ns) või pikendada katkestust ja jälgida holdover-i langust; või kasutada kind = "sweep"/"sweep-nd" selle tabelisse panemiseks. exercises/tier2_sweep.py
Aste 3 — kvantifitseerida ja kaitsta Monte Carlo, usaldusvahemikud, reprodutseeritavus ja kaitsetase Käivitada kella ansambel (runs = N), lugeda vahemikku [p05–p95], kinnitada, et kaks käivitust annavad identse scenario_hash, ning lugeda terviklikkuse / Stanfordi tulemust. exercises/tier3_montecarlo.py

Etalonlahendused kasutavad Pythoni laiendust (maturin develop --features python esimesena). Hoidla juurest käivitatult trükib tier2_sweep.py kiibimõõtmelise aatomkella holdover-i languse väärtuselt 2610 s 20 ns spetsifikatsiooni juures väärtusele 1140 s 5 ns juures.

Soovite värskeid andmeid?#

Nende õpetuste põhiarvud töötavad täielikult hoidlas juba olevatest stsenaariumidest. Midagi ei tooda alla, mis hoiab need reprodutseeritavad ja turvalised pideva integratsiooni (CI) käitamiseks. „Laiendamise“ harjutuste jaoks saab tõmmata reaalajaandmeid:

  • GPS kaherealised elemendikomplektid (TLE-d) (orbiidikonstellatsiooni värskendamiseks): https://celestrak.org/NORAD/elements/gp.php?GROUP=gps-ops&FORMAT=tle, lihttekstiga 3-realised elemendikomplektid (nimi + rida 1 + rida 2). Abiline: scripts/fetch_tles.sh. Avaandmed (USA kosmosejõudude 18. kosmosekaitse eskadrilli kataloog, edasi jaotatud Celestraki poolt, dr T. S. Kelso).
  • SGP4 (Simplified General Perturbations 4) kontrollimise sõltumatu etalon (juba kaasatud, mitte uuesti tõmmata): AIAA (American Institute of Aeronautics and Astronautics) 2006-6753 „Revisiting Spacetrack Report #3“ testvektorid, https://celestrak.org/publications/AIAA/2006-6753/, kasutab tests/sgp4_verification.rs; vt docs/SGP4-VALIDATION.md.
  • Kella stabiilsuse seoste sõltumatu etalon: NIST (National Institute of Standards and Technology) Special Publication 1065 (Riley, Handbook of Frequency Stability Analysis), https://tf.nist.gov/general/pdf/2220.pdf, σ_y(τ)↔faasi seosed õpetuse 2 taga.