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

StsenaariumidMuuda GitHubisAllikas: docs/CAMPAIGNS.md

Kampaaniad

Üks stsenaarium vastab ühele küsimusele ühe olukorra kohta. Missioon on olukordade jada ja kavandiuuring on nende pere. Stsenaariumi liik campaign koostab olemasolevad liigid üheks käivituseks, ühtegi neist uuesti realiseerimata: iga liige on tavaline stsenaariumitabel, mis kannab oma välja kind, suunatakse läbi api::run_toml täpselt nii, nagu käivitaks seda kshana <file>.toml, ning kampaania loeb tulemusdokumentidest välja ainult arve.

Kampaania on MODELLED. Selle koostamisidentsused on testitud (allpool), kuid faaside aheldamine on modelleerimisvalik ja iga faas on vaid nii hea kui liik, mis seda käivitas.

Käivita üks nagu iga teine stsenaarium:

kshana scenarios/campaign-jam-spoof-holdover-integrity.toml
# writes .result.json, .chart.svg, .report.html and .report.json next to the file

Kampaania võib sisaldada nelja jaotise mis tahes kombinatsiooni; ilma ühegi jaotiseta kampaania käivitub ja selle kokkuvõte ütleb, et see ei koostanud midagi.

[[phases]]: aheldatud missioon ühel ajajoonel#

Iga faas käivitab ühe või mitu stsenaariumi jagatud missiooni ajajoone aknas, näiteks holdover-is olev kell ja samal ajal inertsist liikuv inertsiaalnavigatsioonisüsteem (INS). Iga käivituse väljundid loetakse nimega kanalitesse, paigutatakse faasi algusaega ja taasvalimitakse ühisele võrgule ([timeline] step_s) nullkärgu hoiuga: võrguaeg võtab omava faasi käivituse viimase valimi, mis on selle hetkega võrdne või sellest varasem, ning on null, kui ükski selle faasi käivitus kanalit ei paku.

Kanal Ühik Mis see on Eelseadistuse allikas
time_error_ns ns kella ajaviga clock: <side>.series[].error_ns; spoof: <side>.series[].offset_ns
guard_ns ns ajavea kaitsepiir käivituse enda threshold_ns
cn0_dbhz dB-Hz keskmine efektiivne kandja ja müra tiheduse suhe (C/N0) nähtavate satelliitide peale jamming: epochs[].sats[].cn0_effective_dbhz keskmine
cn0_floor_dbhz dB-Hz jälgimise kadumise põrand jamming: stsenaariumi tracking_threshold_dbhz, kui see on antud
tracking arv endiselt jälgitavad satelliidid jamming: epochs[].tracking
protection_level_m m vertikaalne kaitsetase integrity: epochs[].vpl_m
alert_limit_m m vertikaalne häirepiir integrity: al_v_m
position_error_m m asukohaviga gnss-ins: <side>.series[].error_m
position_threshold_m m asukohavea lävi gnss-ins: threshold_m
alarm 1 1 niikaua, kui faasi mis tahes monitor annab häire vt allpool

<side> on classical, kui käivitus ei sea side = "quantum". Mis tahes muud suurust loetakse selgesõnalise kirjega [[phases.runs.series]]: ajatee ühe [] kaudu, mis nimetab read (epochs[].t), nende ridadega jagatud väärtustee või skalaar, mis edastatakse igale reale (prefiks input: loeb käivituse stsenaariumi, mitte tulemust), valikuline reduktsioon (mean, min, max, count) mitme väärtuse jaoks ühe rea all, skaala ja ühik kanalile, mida kampaania ei tunne.

Häired tulevad kolmest kohast, mida faasi sees kombineeritakse loogilise OR-iga:

  • käivitusest loetud eelseadistatud lipud: jamming annab häire, kui jälgitakse alla nelja satelliiti (selle enda kättesaadavuse definitsioon); integrity annab häire epohhidel, mille see märgib kättesaamatuks;
  • eelseadistatud reeglid faasi kanalitel, hinnatakse pärast carry: clock annab häire, kui absoluutne ajaviga ületab guard_ns; gnss-ins kui asukohaviga ületab position_threshold_m; selgesõnalised reeglid lähevad jaotisesse [[phases.runs.alarms]];
  • häiret tekitavad sündmused: spoof tekitab ühe oma kellaga abistatud monitori hetkel detect_time_s; spoof-detect tekitab ühe faasi alguses, kui selle liitotsus annab häire.

Olek antakse edasi faaside vahel kolmel selgesõnalisel viisil:

  • carry = ["time_error_ns"] liidab kanali väärtuse eelmise faasi lõpus selle faasi väärtustele. Kella faas, mida spuufer kõrvale tõmbas, on koht, kust holdover algab. Nihke liitmine on täpne kella faasi puhul, mis integreerib sagedust; asukohavea puhul eeldab see, et kaks viga on kollineaarsed, mis on pessimistlik juhtum.
  • [[phases.handoff]] kirjutab arvu eelmisest faasist (channel:<name> kanali lõppväärtuse jaoks või mis tahes eelmise käivituse tulemustee) selle faasi stsenaariumi punktiga eraldatud võtmesse enne selle käivitamist, valikulise skaala ja nihkega.
  • end_at = "<result path>" lõpetab faasi käivituse arvutatud ajal, piiratuna väärtusega duration_s. Komplekteeritud missioon lõpetab oma spuufimisfaasi hetkel classical.detect_time_s.

skip_s jätab käivituse enda ajajoone esimesed sekundid (soojenduse) enne faasi nullaega kõrvale.

Komplekteeritud missioon#

scenarios/campaign-jam-spoof-holdover-integrity.toml käivitab 18 liikmestsenaariumi kuues faasis 10 s võrgul:

Faas Käivitused Mida ajajoon näitab
nominaalne, 600 s clock, jamming (segajat pole), integrity ajaviga 0 ns; C/N0 43,0 dB-Hz 25 dB-Hz põranda vastu; vertikaalne kaitsetase 9,1 kuni 21,6 m 50 m häirepiiri vastu
segamine, 600 s sama, segaja -30 dBW juures, 1 km C/N0 langeb väärtuseni 27,7 dB-Hz, kõik 8 satelliiti jälgitakse endiselt
spuufimine, lõppes hetkel 370 s tänu end_at spoof (0,1 ns/s ajarambi), spoof-detect, jamming ajaviga kasvab väärtuseni 36 ns; raadiosageduslik detektor annab häire faasi alguses, kellaga abistatud monitor hetkel 370 s
holdover, 1800 s clock (keelatud, kannab 37,0 ns), gnss-ins (taktikaline seade liigub inertsist), jamming väärtusel 10 dBW iga satelliit kadunud (C/N0 ligikaudu -12 dB-Hz); ajaviga 36,4 kuni 62,7 ns 50 ns piirdetaseme vastu; asukohaviga kuni 24 km
integrity-alarm, 600 s clock (kannab 59,6 ns), jamming ja integrity 25 kraadise maskiga 5 satelliiti jälgitakse; kaitsetase 19 kuni 135 m, puudub 18 võrguajal 60-st; üle kantud ajaviga, 52,1 kuni 61,7 ns, püsib 50 ns piirdetasemest kõrgemal, seega on häire üleval kogu faasi vältel
taastumine, 600 s clock, jamming (segajat pole), integrity ajaviga tagasi 0 ns; häire vaikib

Terviklikkuse käivitused kasutavad näite integrity enda kasutajarada (0,4 km kõrgusel olev ringrada), mitte segamise vastuvõtja fikseeritud asukohta, ja 25 kraadine mask asendab uuesti haarava vastuvõtja osalist taevast. Need on stsenaariumi valikud, mis on faili kirja pandud.

L-riba spektri juhitud missioon#

scenarios/campaign-spectrum-holdover-integrity.toml käivitab 8 liikmestsenaariumi kolmes faasis 1 s võrgul, kusjuures GPS L1 C/A ja Galileo E1 C/N0 loetakse stsenaariumi liigist spectrum (vt SPECTRUM.md), mitte stsenaariumi liigi jamming satelliidikaupa tabelist. Segajad on needsamad, mis failis scenarios/l-band-waterfall-jamming.toml.

Faas Käivitused Mida ajajoon näitab
algus, lõppes hetkel 10 s tänu end_at clock, spectrum (chirp alates 10 s), integrity L1 C/A 43,48 ja E1 44,73 dB-Hz; faas lõpeb spektri käivituse enda L1 C/A esimese kadumisega (timeline.bands[0].first_loss_t_s); kaitsetase 21,6 m 50 m vastu
holdover, 600 s clock (keelatud, kannab alguse viga, siin 0 ns), spectrum (chirp sees) L1 C/A 3,38 ja E1 4,44 dB-Hz, mõlemad 25 dB-Hz põrandast allpool; ajaviga -0.07 kuni 5,06 ns 50 ns piirdetaseme vastu; häire üleval
galileo-fallback, 300 s clock (uuesti sünkroniseeritud), spectrum (CW-toon L1 kandelainel), integrity Galileo-laadsel Walkeri konstellatsioonil 24/3/1 L1 C/A püsib tasemel 17,98 dB-Hz, E1 tagasi tasemel 44,73 dB-Hz; kaitsetase 6,1 kuni 17,7 m; häire vaikib

E1 taastumine CW-tooni all tugineb spektri liigi pideva spektri käsitlusele: toon asub MBOC spektri nullkohas ega seo midagi. Päris toon seostuks koodi spektrijoonte kaudu; see on kirjas failis ja failis SPECTRUM.md.

[sweep]: parameetrivõrk mis tahes liigi üle#

Üks kuni kolm punktiga stsenaariumivõtit, igaüks lineaarse või logaritmilise vahemiku üle, samadel telje väärtustel, mida kasutab liik sweep-nd. Igal teljel on nimi ja ühik; igal mõõdikul on nimi ja tulemustee ning selle ühik loetakse pühitud liigi enda ühikuplokist, kui kampaania ei deklareeri muud. Kui runs > 1, on iga sõlm algväärtustatud (seeded) Monte Carlo ansambel (realisatsioon k sõlme algväärtusel pluss k), mis esitatakse allpool toodud statistikaga. scenarios/campaign-sweep-jammer-power.toml pühib vastuvõtjast 1 km kaugusel olevat segajat vahemikus -50 kuni +10 dBW: keskmine segaja ja signaali suhe liigub täpselt 1 dB dB kohta (12,2 kuni 72,2 dB) ning kättesaadavus langeb väärtuselt 1 väärtusele 0 vahemikus -30 kuni -25 dBW.

Punktiga võti võib indekseerida tabelimassiivi asukoha järgi: system.2.sisre_m on kolmanda [[system]] tabeli sisre_m ja case.0.system.0.shell.0.altitude_km ulatub kolm taset sügavale.

[monte_carlo]: algväärtustatud ansambel#

Realisatsioon k käivitab stsenaariumi oma algväärtuse võtmega base_seed + k, mida kella ansambel juba kasutab, nii et ansambel reprodutseerub täpselt. Iga mõõdik esitab keskmise, üldkogumi standardhälbe, lähima järgu 5., 50. ja 95. protsentiili, kindla algväärtusega protsentiili-bootstrapi 95% usaldusvahemiku keskmisele (2000 taasvalimit) ja vaikimisi iga valimi algväärtuse järjekorras. Tulemusteed võivad massiive indekseerida: classical.series[-1].error_ns on viimane valim.

[compose]: mitu stsenaariumi jagatud tingimustel#

Nimega jagatud väärtused (arv või arvude massiiv, koos ühikuga) kirjutatakse igasse liikmesse võtmetesse, millega need on seotud, nii et liikmed ei saa jagatud tingimuse osas eriarvamusel olla. Iga liige käivitub ja iga mõõdiku kohta annab kombineeritud kokkuvõte liikmete väikseima, suurima ja keskmise väärtuse, nimetades parima ja halvima. scenarios/campaign-shared-jammer-sea-road.toml paneb ühe 8 dBW segaja Soome lahe laeva (umbes 30 km kaugusel) ja Helsingi rannatee auto (umbes 50 km) vahele: laev kaotab iga satelliidi (keskmine segaja ja signaali suhe 39,0 dB), samal ajal kui auto säilitab vähemalt neli (34,6 dB).

[optimize]: ühe mõõdiku parim väärtus#

Üks kuni kolm punktiga stsenaariumivõtit, igaüks piiratud vahemikuga [lo, hi] skaalal lin või log, otsitakse ühe mõõdiku parima väärtuse leidmiseks (goal = "minimize", "maximize" või "target", mis minimeerib kaugust väärtusest target).

Meetodeid on kaks:

  • method = "grid" käivitab iga võrgusõlme steps-võtme-kohasel võrgul, pühkimise telje väärtustel.
  • method = "nelder-mead" (vaikimisi) käivitab deterministliku Nelder–Meadi simpleksi koordinaatides, mis on võtme kohta normaliseeritud vahemikku [0, 1]. Proovipunktid projitseeritakse kasti. Jaotis võtab max_evals, algse step ja peatumistolerantsid ftol ning xtol.

Käivitus, mille mõõdik puudub või ei ole lõplik, saab halvima skoori ja see säilitatakse jälgimises. Kui runs > 1, on mõõdik keskmine samade algväärtuste üle igal hindamisel. Tulemus annab best_coords, best_metric, best_score, evals, stop_reason ja iga hindamise failis trace.

scenarios/campaign-optimize-link-budget.toml otsib kaugust ja andmekiirust 3 dB lingivaru jaoks. Optimum on lokaalne kasti ja alguspunkti suhtes. See on MODELLED, mitte kunagi globaalne väide.

Protokoll ja selle eelregistreeritud läved on failis docs/design/evidence/cap32-optimize/. Test on tests/campaign_optimize_reference.rs. Tulemused:

  • 1-D sihtlahendus langeb kokku kinnise kujuga 6e-15 täpsusega;
  • võrgumeetod langeb bitthaaval kokku sõltumatu toore jõu tsükliga;
  • simpleks toimib vähemalt sama hästi kui 41 × 41 võrk, umbes kümnendiku sellest käivitustest.

Vooru 1 1-D lävi on registreeritud kui NOT MET: eelregistreeritud kast jättis lahenduse välja.

Reprodutseeritavus#

Iga kampaania tulemus kannab scenario_hash, mis on kampaaniadokumendi kanoonilise JavaScript Object Notation (JSON) kuju SHA-256 (Secure Hash Algorithm 2, 256-bitine räsi) (võtmete järjekord ja vormindus seda ei muuda), ning bloki reproducibility liikmekäivituste arvuga ja run_digest, mis on SHA-256 kõigi liikmetulemuste räsidest suunamise järjekorras. Kaks sama räsiga käivitust andsid baidi baidi haaval identsed liikmetulemused. Iga faasikäivitus salvestab ka oma liigi, oma scenario_hash, kui liigil see on, ja oma tulemusdokumendi SHA-256. Igal dokumendi arvul on ühikukirje.

Tuum on järjestikune ega loe ühtegi faili, nii et kampaania käivitub muutmata kujul WebAssembly versioonis. Kampaaniad ei või sisaldada kampaaniaid.

Eksport#

--export kampaaniale kirjutab iga geomeetriaga liikmestsenaariumi oma failikomplektina, liikme silt lisatud vormingu laiendi ette: iga faasikäivitus (<phase> või <phase>-<k>, kui faasil on mitu käivitust), pühkimise baasstsenaarium (sweep), Monte Carlo stsenaarium (monte-carlo) ja iga koostatud liige (oma sildiga, koos selle seotud jagatud väärtustega). Varasemaga identne liige kirjutatakse ühe korra; üleandmised ning käitusajal rakendatud pühkimise või algväärtuse väärtused ei ole eksporditud stsenaariumides.

kshana scenarios/campaign-shared-jammer-sea-road.toml --export kml
# after the usual result, chart and report files:
# wrote scenarios/campaign-shared-jammer-sea-road.ship-strait.kml
# wrote scenarios/campaign-shared-jammer-sea-road.car-coast-road.kml

Vormingu, mida ükski liige kirjeldada ei saa, lükatakse tagasi koos selle põhjendusega. Stsenaariumi kaupa tabel on failis INTEROP.md.

LEO-PNT kampaaniad#

Viisteist komplekteeritud kampaaniat raamivad madala Maa orbiidi (LEO) positsioneerimise, navigatsiooni ja aja (PNT) küsimusi; LEO-PNT.md kirjeldab, mida kumbki näitab. Mida kumbki käivitab, nagu käsurida seda kokku võtab:

Stsenaarium Režiim Küsimus
leo-focus-data-services.toml koosta, 4 liiget navigatsioonisõnumi teenuseandmed võrreldes kaadri pikkusega
leo-focus-fused-pnt-sisre.toml pühkimine leo-pvt, 7 sõlme ühendatud MEO ja LEO positsioneerimine võrreldes LEO signaali kosmoses vahemaa veaga (SISRE)
leo-focus-indoor-uhf.toml koosta, 2 liiget siseruumide LEO-PNT riba ja hoonete klassi kaupa
leo-focus-iot-eirp.toml pühkimine leo-pass, 9 sõlme asjade interneti (IoT) energia fiksi kohta võrreldes LEO UHF saatevõimsusega
leo-focus-ntn-bandwidth.toml pühkimine ntn-positioning, 9 sõlme mittemaapealse võrgu (NTN) positsioneerimine võrreldes tugisignaali ribalaiusega
leo-focus-ppp-altitude.toml pühkimine leo-ppp, 3 sõlme täppispunktpositsioneerimise (PPP) koondumine võrreldes 192-satelliidilise LEO kihi kõrgusega
leo-resilience-gnss-jammed-leo-carries.toml ahel, 3 faasi 2100 s jooksul ülemaailmne satelliitnavigatsioonisüsteem (GNSS) segatud, LEO kiht kannab kasutajat, terviklikkus säilib
leo-resilience-multiband-diversity.toml pühkimine spectrum, 13 sõlme LEO riba mitmekesisus L-riba ülekoormava segaja vastu
leo-resilience-spoof-monitors.toml koosta, 4 liiget spuufimise monitorid nelja spuuferi vastu
leo-vertical-5g-network-timing.toml ahel, 1 faas 86 400 s jooksul 5G tugijaama ajastus: holdover ja LEO aeg
leo-vertical-asset-tracking-iot.toml ahel, 3 faasi 1440 s jooksul konteinerite jälgimine LEO UHF-iga: energia fiksi kohta reisi vältel
leo-vertical-autonomous-vehicle.toml ahel, 2 faasi 1500 s jooksul autonoomne sõiduk linnakanjonis LEO kihiga
leo-vertical-autonomous-vehicle-skyline.toml ahel, 2 faasi 1800 s jooksul sama linnakanjon lameda 35 kraadise lõikenurgana ja city-street silueti kujul
leo-vertical-critical-infrastructure-timing.toml ahel, 2 faasi 87 000 s jooksul kriitilise taristu ajastus: holdover LEO ajaga
leo-vertical-polar-arctic.toml ahel, 3 faasi 10 800 s jooksul polaar- ja Arktika kasutajad polaarse LEO kihiga
leo-vertical-rail-maritime.toml ahel, 3 faasi 2520 s jooksul raudtee- ja merekasutajad LEO kihiga

MEO on keskmine Maa orbiit, UHF ülikõrgsagedus ja 5G mobiilsidevõrkude viies põlvkond.

Mida kontrollitakse#

tests/campaign_composition_reference.rs kinnistab koostamisidentsused:

  • Ühefaasiline kampaania reprodutseerib iseseisva käivituse bitthaaval. Liikmete clock, integrity ja jamming puhul on liikme tulemusdokument baidi baidi haaval identne dokumendiga run_toml stsenaariumifailil, selle räsi on kampaania esitatud räsi ning kui võrk on käivituse enda sammuga, võrdub iga joondatud väärtus iseseisva rea väärtusega (segamise C/N0 võrdub iseseisvast dokumendist sõltumatult arvutatud keskmisega).
  • Ühesõlmeline pühkimine ja ühe liikmega koostis loevad täpselt iseseisva arvu.
  • Kindla algväärtusega ansambel on baidi tasemel stabiilne ja realisatsioon k on täpselt iseseisev käivitus algväärtusel seed + k; kampaania räsi ignoreerib võtmete järjekorda.
  • Analüütiline juhtum. scenarios/campaign-monte-carlo-clock-holdover.toml käivitab 200 algväärtust kiibiskaalas aatomkellast, millel on ainult valge sagedusmüra (q_wf = 9e-20 s^2/s, Microchip SA.45s sigma_y(1 s) = 3e-10), sünkroniseeritud hetkeni 590 s ja inertsist liikuvast kuni hetkeni 3600 s. Lõplik ajaviga on Gaussi jaotusega keskmisega 0 ja standardhälbega sqrt(q_wf * 3010 s) = 16,459 ns (faasi juhuslik käimine valge sagedusmüra korral, National Institute of Standards and Technology (NIST) Technical Note 1337). Esitatud vahemik [-2.52, 1,59] ns sisaldab tõelist keskmist 0; valimi standardhälve 14,93 ns annab hii-ruut statistiku 164,5 199 vabadusastmel, kahepoolse 99% vahemiku [151,37, 254,14] sees. 3000 algväärtuse juures annab sama stsenaarium 16,31 ns.
  • Spektrijuhitud ahel loeb iseseisvaid arve: algusfaas kestab täpselt spektri käivituse esimese kadumise aja ja iga L1 C/A ning E1 väärtus ajajoonel võrdub 1e-9 dB täpsusega iseseisva juga-näite rea väärtusega sama segaja oleku jaoks (nominaalne, ainult chirp, ainult CW-toon).
  • Ahel annab olekut edasi nii, nagu on dokumenteeritud: spuufimisfaas kestab täpselt spuufimise käivituse tuvastamise aja, holdover kannab täpselt spuufimise käivituse nihet tuvastamise hetkel, taastumine ei kanna midagi ning häire on üleval kõikjal, kus kaitsetase puudub või ületab häirepiiri.

Need kontrollivad, et koostamine ei muuda midagi, mida ei tohiks. Need ei kontrolli aheldatud missiooni mõõdetud missiooni vastu, mistõttu on kolm kampaaniarida failis VERIFICATION-MATRIX.md MODELLED.