campaign (scenarietype)
Scenarietype i motoren v0.40.0, familie Kampagner. Vejledende: analyseoutput fra et forsknings- og ingeniørværktøj, ikke typegodkendt navigationsudstyr og ikke en sikkerhedskritisk tjeneste (safety-of-life). Hver mærkat her er motorens eller verifikationsmatrixens; en type er MODELLED, medmindre matrixen siger andet (hvordan en mærkat opnås: README'ens afsnit Evidence).
Hvad det gør#
Kampagne: eksisterende scenarietyper sammensat til én kørsel, hvor hvert tal er læst fra en rigtig kørsel af den navngivne type. Fire sektioner, i enhver kombination. PHASES: en kædet mission på én fælles tidslinje -- hver fase kører ét eller flere scenarier (for eksempel jamming, så spoofing, så et ur i holdover med et inertinavigationssystem, der glider ved siden af, så en integritetsalarm, så genopretning), deres output læses ind i navngivne kanaler (urets tidsfejl mod dets grænse, forholdet mellem bærebølge og støjtæthed mod sporingsgulvet, beskyttelsesniveau mod alarmgrænsen, positionsfejl, satellitter der spores, alarmflag) af en forudindstilling pr. type eller af eksplicitte resultatstier og gensamples på et fælles gitter med zero-order hold, med fasegrænser og hændelser; tilstand videregives ved carry (en kanal fortsætter fra forrige fases slutværdi), handoff (et tal fra en forrige fase skrevet ind i denne fases scenarie) og end_at (en fase slutter på et tidspunkt, som en kørsel har beregnet, for eksempel en spoofing-monitors detektionstidspunkt). SWEEP: et gitter over en til tre punktsepararede scenarienøgler af en vilkårlig type (et heltalssegment indekserer en array af tabeller, som i system.2.sisre_m), med målinger læst ved resultatsti og, med flere end én kørsel, et seedet Monte Carlo-ensemble i hver knude. MONTE_CARLO: realisation k kører ved base_seed + k; hver måling rapporterer middelværdi, standardafvigelse, nearest-rank 5.-/50.-/95.-percentiler og et bootstrap-konfidensinterval på 95 % for middelværdien med fast seed. COMPOSE: flere scenarier under fælles værdier (én jammers effekt og position skrevet ind i en maritim og en vejmodtager), med en samlet bedste/værste oversigt. Resultatet bærer en kampagne-hash, en digest over hvert medlemsresultat og en enhedsangivelse for hvert udsendt tal; interoperabilitetseksporterne skriver hvert medlemsscenarie, der har geometri, som sit eget filsæt. Sammensætningsidentiteter afprøves: en etfaset kampagne gengiver den selvstændige kørsel bit for bit, et ensemble med fast seed er bytestabilt, og på et ur med hvid frekvensstøj falder ensemblets middelværdi inden for det rapporterede interval, hvor spredningen stemmer med sqrt(q_wf * tau). MODELLED: den additive carry og zero-order hold er modelvalg, og hver fase bærer mærkaten for den type, der kørte den.
Én kørsel af scenarios/campaign-sweep-jammer-power.toml opsummeres som: campaign 46aa07cb58fb | Jammer power sweep: availability and J/S against transmit power | sweep af jamming: 13 knuder over [jammer_power] | 13 medlemskørsler (MODELLED)
Input#
Fra skemaet (kshana kinds --json):
- Påkrævede felter: ingen
- Valgfrie felter:
title,seed,timeline,phases,sweep,monte_carlo,compose
Eksemplet scenarios/campaign-sweep-jammer-power.toml angiver blandt andet:
| Felt | Værdi | Enhed |
|---|---|---|
kind |
campaign | tekst |
seed |
20260928 | 1 |
sweep.axes[0].key |
jammer.power_dbw | tekst |
sweep.axes[0].name |
jammer_power | tekst |
sweep.axes[0].start |
-50 | ikke angivet |
sweep.axes[0].steps |
13 | ikke angivet |
sweep.axes[0].stop |
10 | ikke angivet |
sweep.axes[0].unit |
dBW | tekst |
sweep.metrics[0].name |
tilgængelighed | tekst |
sweep.metrics[0].path |
fom.availability_under_jamming | tekst |
sweep.metrics[1].name |
mean_js | tekst |
sweep.metrics[1].path |
fom.mean_js_db | tekst |
Kør den#
kshana scenarios/campaign-sweep-jammer-power.toml
22 medfølgende scenarier bruger denne type; de øvrige findes i scenarios/.
Hvad den giver#
De skalare resultater af den kørsel, med de enheder, motoren angiver:
| Resultat | Værdi | Enhed |
|---|---|---|
evidence.id_rule |
det stabile id for matrixrækken (kolonnen ID | tekst |
evidence.matrix |
docs/VERIFICATION-MATRIX.md | tekst |
evidence.tier |
PARTNER | tekst |
reproducibility.campaign_hash |
46aa07cb58fbfbd3784c2e1ef8d6070508ad5f5c | tekst |
reproducibility.run_digest |
a082a9466bcd5c8788a2a46373a47e418db1393c | tekst |
reproducibility.runs_total |
13 | antal |
seed |
20260928 | 1 |
sweep.axes.jammer_power.key |
jammer.power_dbw | tekst |
sweep.axes.jammer_power.scale |
lin | tekst |
sweep.axes.jammer_power.unit |
dBW | tekst |
Resultatmærkat (motorens egen): MODELLED sammensætning af eksisterende scenarietyper. Hvert tal er læst fra en rigtig kørsel af den navngivne type; kædningen (additiv carry af en kanal over en fasegrænse, zero-order hold på tidslinjens gitter, en fase afsluttet på et beregnet tidspunkt) er et modelvalg, og hver fase bærer mærkaten
Evidens#
MODELLED: rækkerne i verifikationsmatrixen, der nævner denne type.
- MODELLED iq::campaign::detect og kampagnekøreren: en valgfri [monitors]-tabel kører IQ-monitorerne på hver celle i kørerens enkelte gennemløb. Tests: iq_campaign.rs.
- MODELLED iq::campaign::detect (windows, roc) og iq::campaign::report::rocs: hver celle i en kampagne med monitorer beholder, pr. alarmtype og kanal, maksimum af monitorens egen teststørrelse over hvert angivet hændelsesvindue (positiv) og over t
- MODELLED iq::labfit (campaign, cn0, iqfit, iqreport) og
[input] campaignpåkshana iq labfit, Pythonkshana.iq_labfitog MCP-værktøjet labfit (kun kampagnemapper inde i dets arbejdsmappe): læser enkshana iq campaign-outputmappe efter dens Tests: iq_labfit_followup.rs. - MODELLED Fasene i typen
campaign: hver fase kører ét eller flere scenarier af eksisterende typer gennem run_toml, læser deres output ind i navngivne kanaler (urets tidsfejl og grænse, middel af effektivt forhold mellem bærebølge og støjtæthed og sporingsgulv, v Tests: campaign_composition_reference.rs. - og 4 flere i matrixen.
De rækker, som kørslen selv afprøvede, med den uafhængige reference, som matrixen giver hver (de offentlige kilder er nævnt dér):
- MODELLED Geometrisk J/S-linkbudget, anti-jam-C/N₀, tab af lås pr. satellit. Uafhængig reference (InternalConsistency): Linkbudgetligningen for anti-jam-C/N₀ krydskontrolleret mod en uafhængig numpy-udledning påny (deler den samme lukkede form → InternalConsistency) plus en karakterisering af C/N₀-forringelse fra reelle JammerTest-2024-data. 0,30 runde 2, blokeret (forbliver MODELLED): det målte fald i C/N0 fra JammerTest 2024 mod en linkbudgetforudsigelse (præregistreret 6a66994b, inden for 3 dB) blev ikke kørt, fordi F8.1-antennens position og pegning ved
- MODELLED Deterministisk, scenarie-hashet, SBOM + gates med golden-filer på tværs af platforme. Uafhængig reference (ExternalDataset): SBOM'ens validering mod det officielle CycloneDX 1,5 JSON-skema (+ gyldige SPDX-identifikatorer) — en ekstern publiceret standard, nul valideringsfejl over hele afhængighedsgrafen; den del, der gælder FoM-determinisme / byte-reproducerbarhed, er fortsat et fastlåst selvkonsistenstjek, så rækken forbliver MODELLED
- PARTNER Ikke leveret — Kshana modellerer signalydelse, ikke nyttelast- eller antennehardware. Uafhængig reference (NoneKind): ingen: en disciplin, som partneren ejer, uden modul og uden test, af design
- MODELLED Typen
campaigns sweep (en til tre punktsepararede nøgler af en vilkårlig type, på det generiske sweeps akseværdier, eventuelt et ensemble i hver knude) og monte_carlo-sek. Uafhængig reference (InternalConsistency): Den lukkede form for fasens random walk under hvid frekvensstøj, varians q_wf tau (NIST Technical Note 1337), for statistikmaskineriet, og byte-lighed med de selvstændige kørsler for seedningen. Det kontrollerer ensemblets aritmetik på motorens egen urmodel, ikke et eksternt datasæt
Begrænsninger#
Hvad kørslens egen rapport siger ikke er modelleret eller ikke er valideret:
- MODELLED sammensætning af eksisterende scenarietyper. Hvert tal er læst fra en rigtig kørsel af den navngivne type; kædningen (additiv carry af en kanal over en fasegrænse, zero-order hold på tidslinjens gitter, en fase afsluttet på et beregnet tidspunkt) er et modelvalg, og hver fase bærer mærkaten for den type, der frembragte den. (resultat
label) - MODELLED: den additive carry og zero-order hold er modelvalg, og hver fase bærer mærkaten for den type, der kørte den. (typekatalog (
kshana kinds --json)) - MODELLED: som typen
jamminger. (kommentar i scenariefilen, linje 14) - Modstandsdygtighed over for jamming i GNSS-nægtede miljøer er MODELLED, ikke valideret: kontrolleret mod sin egen lukkede/analytiske identitet — fanger transskriptions- og koefficientfejl, men er ikke en ekstern uafhængig reference. (verifikationsmatrix (docs/MODELLED-RATIONALE.md))
- Reproducerbarhed og softwarekvalitetssikring er MODELLED, ikke valideret: en delpåstand kontrolleres eksternt, men hele funktionen sammensættes af modellerede dele, så funktionen forbliver modelleret. (verifikationsmatrix (docs/MODELLED-RATIONALE.md))
- Parametersweeps og seedede Monte Carlo-ensembler over enhver scenarietype er MODELLED, ikke valideret: kontrolleret mod sin egen lukkede/analytiske identitet — fanger transskriptions- og koefficientfejl, men er ikke en ekstern uafhængig reference. (verifikationsmatrix (docs/MODELLED-RATIONALE.md))
Se også#
- Familieside: Kampagner
- Alle typer: KINDS.md
- Emneside: LEO-PNT.md
- Emneside: RESILIENCE-CROSSWALK.md