campaign (scenariotype)
Scenariotype i motoren v0.40.0, familie Kampanjer. Veiledende: analyseutdata fra et forsknings- og ingeniørverktøy, ikke typegodkjent navigasjonsutstyr og ikke en sikkerhetskritisk tjeneste for menneskeliv. Hver etikett her er motorens eller verifikasjonsmatrisens; en type er MODELLED med mindre matrisen sier noe annet (hvordan en etikett fortjenes: Evidens-avsnittet i README).
Hva den gjør#
Kampanje: eksisterende scenariotyper satt sammen til én kjøring, der hvert tall er lest fra en reell kjøring av den navngitte typen. Fire deler, i en hvilken som helst kombinasjon. PHASES: et lenket oppdrag på én felles tidslinje -- hver fase kjører ett eller flere scenarioer (for eksempel jamming, deretter spoofing, deretter en klokke i holdover med et treghetsnavigasjonssystem som glir ved siden av, deretter en integritetsalarm, deretter gjenoppretting), utdataene leses inn i navngitte kanaler (klokkens tidsfeil mot sin vaktgrense, bærebølge-til-støytetthetsforhold mot sporingsgulvet, beskyttelsesnivå mot varslingsgrensen, posisjonsfeil, satellitter som spores, alarmflagg) ved en forhåndsinnstilling per type eller ved eksplisitte resultatstier, og resamples på et felles rutenett med null-ordens holdning, med fasegrenser og hendelser; tilstand føres videre ved carry (en kanal fortsetter fra forrige fases sluttverdi), handoff (et tall fra forrige fase skrives inn i denne fasens scenario) og end_at (en fase slutter på et tidspunkt en kjøring beregnet, for eksempel en spoofing-monitors deteksjonstid). SWEEP: et rutenett over én til tre punktnotasjonsnøkler i scenarioet for en hvilken som helst type (et heltallssegment indekserer en liste av tabeller, som i system.2.sisre_m), med metrikker lest ved resultatsti og, med flere enn én kjøring, et seedet Monte Carlo-ensemble i hver node. MONTE_CARLO: realisering k kjøres ved base_seed + k; hver metrikk rapporterer gjennomsnitt, standardavvik, nærmeste-rang 5.-/50.-/95.-persentiler og et bootstrap-konfidensintervall på 95% med fast seed for gjennomsnittet. COMPOSE: flere scenarioer under felles verdier (én jammers effekt og posisjon skrevet inn i en maritim mottaker og en veimottaker), med en samlet beste/verste oppsummering. Resultatet inneholder en kampanje-hash, en digest over alle medlemsresultater og en enhetsoppføring for hvert utsendt tall; interoperabilitetseksportene skriver hvert medlemsscenario som har geometri som et eget filsett. Sammensetningsidentiteter er testet: en kampanje med én fase gjengir den frittstående kjøringen bit for bit, et ensemble med fast seed er byte-stabilt, og på en klokke med hvit frekvensstøy faller ensemblets gjennomsnitt inne i det rapporterte intervallet med en spredning som stemmer med sqrt(q_wf * tau). MODELLED: den additive carry-en og null-ordens holdning er modelleringsvalg, og hver fase har etiketten til typen som kjørte den.
Én kjøring av scenarios/campaign-sweep-jammer-power.toml oppsummeres som: campaign 46aa07cb58fb | Jammer power sweep: availability and J/S against transmit power | sweep of jamming: 13 nodes over [jammer_power] | 13 member runs (MODELLED)
Inndata#
Fra skjemaet (kshana kinds --json):
- Påkrevde felt: ingen
- Valgfrie felt:
title,seed,timeline,phases,sweep,monte_carlo,compose
Eksempelet scenarios/campaign-sweep-jammer-power.toml setter blant annet:
| Felt | Verdi | Enhet |
|---|---|---|
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 oppgitt |
sweep.axes[0].steps |
13 | ikke oppgitt |
sweep.axes[0].stop |
10 | ikke oppgitt |
sweep.axes[0].unit |
dBW | tekst |
sweep.metrics[0].name |
tilgjengelighet | 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 |
Kjør den#
kshana scenarios/campaign-sweep-jammer-power.toml
22 medfølgende scenarioer bruker denne typen; de andre står i scenarios/.
Hva den gir#
Skalarresultatene fra den kjøringen, med enhetene motoren oppgir:
| Resultat | Verdi | Enhet |
|---|---|---|
evidence.id_rule |
den stabile id-en til matriseraden (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 | antall |
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 |
Resultatetikett (motorens): MODELLED composition of existing scenario kinds. Every number is read from a real run of the named kind; the chaining (additive carry of a channel across a phase boundary, zero-order hold onto the timeline grid, a phase ended at a computed time) is a modelling choice, and each phase carries the labe
Evidens#
MODELLED: radene i verifikasjonsmatrisen som navngir denne typen.
- MODELLED iq::campaign::detect og kampanjekjøreren: en valgfri [monitors]-tabell kjører IQ-monitorene på hver celle i kjørerens enkeltpass. Tester: iq_campaign.rs.
- MODELLED iq::campaign::detect (windows, roc) og iq::campaign::report::rocs: hver celle i en kampanje med monitorer beholder, per alarmtype og kanal, maksimum av monitorens egen teststatistikk over hvert oppgitte hendelsesvindu (positiv) og over t
- MODELLED iq::labfit (campaign, cn0, iqfit, iqreport) og
[input] campaignpåkshana iq labfit, Pythonkshana.iq_labfitog MCP-verktøyet labfit (kampanjemapper kun innenfor arbeidsmappen): leser enkshana iq campaign-utdatamappe etter dens Tester: iq_labfit_followup.rs. - MODELLED Fasene til typen
campaign: hver fase kjører ett eller flere scenarioer av eksisterende typer gjennom run_toml, leser utdataene inn i navngitte kanaler (klokkens tidsfeil og vaktgrense, gjennomsnittlig effektivt bærebølge-til-støytetthetsforhold og sporingsgulv, v Tester: campaign_composition_reference.rs. - og 4 til i matrisen.
Radene kjøringen selv brukte, med den uavhengige referansen matrisen gir hver (de offentlige kildene er navngitt der):
- MODELLED Geometrisk J/S-linkbudsjett, anti-jam C/N₀, tap av lås per satellitt. Uavhengig referanse (InternalConsistency): Likningen for anti-jam C/N₀-linkbudsjett kryssjekket mot en uavhengig numpy-utledning (deler samme lukkede form → InternalConsistency) pluss en karakterisering av C/N₀-degradering i virkelige JammerTest-2024-data. 0,30 runde 2, blokkert (forblir MODELLED): den målte C/N0-nedgangen i JammerTest 2024 mot en linkbudsjettprediksjon (forhåndsregistrert 6a66994b, innen 3 dB) ble ikke kjørt fordi F8.1-antenneposisjonen og -pekingen at
- MODELLED Deterministisk, scenariohashet, SBOM + gates med gylne verdier på tvers av plattformer. Uavhengig referanse (ExternalDataset): SBOM-overensstemmelse med det offisielle CycloneDX 1,5 JSON Schema (+ gyldige SPDX-identifikatorer), en ekstern publisert standard, null valideringsfeil over hele avhengighetsgrafen; delen om FoM-determinisme / byte-reproduserbarhet er fortsatt en festet selvkonsistenssjekk, så raden forblir MODELLED
- PARTNER Ikke levert — Kshana modellerer signalytelse, ikke nyttelast- eller antennemaskinvare. Uavhengig referanse (NoneKind): ingen: en disiplin som eies av partneren, uten modul og uten test etter utforming
- MODELLED Sweep-delen til typen
campaign(én til tre punktnotasjonsnøkler av en hvilken som helst type, på det generiske sveipets akseverdier, eventuelt et ensemble i hver node) og monte_carlo-sek. Uavhengig referanse (InternalConsistency): Den lukkede formen for fasens randomvandring under hvit frekvensstøy, varians q_wf tau (NIST Technical Note 1337), for statistikkmaskineriet, og byte-likhet med de frittstående kjøringene for seedingen. Den kontrollerer ensemble-aritmetikken på motorens egen klokkemodell, ikke et eksternt datasett
Begrensninger#
Hva kjøringens egen rapport sier ikke er modellert eller ikke er validert:
- MODELLED sammensetning av eksisterende scenariotyper. Hvert tall er lest fra en reell kjøring av den navngitte typen; lenkingen (additiv carry av en kanal over en fasegrense, null-ordens holdning på tidslinjens rutenett, en fase avsluttet på et beregnet tidspunkt) er et modelleringsvalg, og hver fase har etiketten til typen som frembrakte den. (resultat
label) - MODELLED: den additive carry-en og null-ordens holdning er modelleringsvalg, og hver fase har etiketten til typen som kjørte den. (typekatalog (
kshana kinds --json)) - MODELLED: slik typen
jamminger. (kommentar i scenariofilen, linje 14) - Robusthet mot jamming uten GNSS er MODELLED, ikke validert: kontrollert mot sin egen lukkede/analytiske identitet – fanger opp transkripsjons- og koeffisientfeil, men er ikke en uavhengig ekstern referanse. (verifikasjonsmatrise (docs/MODELLED-RATIONALE.md))
- Reproduserbarhet og programvarekvalitetssikring er MODELLED, ikke validert: en delpåstand er kontrollert eksternt, men hele funksjonen setter sammen modellerte deler, så funksjonen forblir modellert. (verifikasjonsmatrise (docs/MODELLED-RATIONALE.md))
- Parametersveip og seedede Monte Carlo-ensembler over en hvilken som helst scenariotype er MODELLED, ikke validert: kontrollert mot sin egen lukkede/analytiske identitet – fanger opp transkripsjons- og koeffisientfeil, men er ikke en uavhengig ekstern referanse. (verifikasjonsmatrise (docs/MODELLED-RATIONALE.md))
Se også#
- Familieside: Kampanjer
- Alle typer: KINDS.md
- Temaside: LEO-PNT.md
- Temaside: RESILIENCE-CROSSWALK.md