Opastus 2 — Kellon holdover: kuinka kauan voit liukua
Kind: clock · Skenaario: scenarios/clock-holdover.toml (opetuskopio: scenarios/clock.toml) · Vaikeustaso: aloittelija · ~20 min
Lopuksi olet ajanut kellon holdoverin GNSS-signaalit (maailmanlaajuinen satelliittinavigointijärjestelmä) estettyinä, lukenut ajoituksen laatumittarin ja ymmärtänyt ajautumislain √(q_wf·T), joka selittää, miksi optinen kello kestää pidempään kuin sirukokoinen, lain lähteenä NIST (Yhdysvaltain kansallinen standardi- ja teknologiainstituutti), ei keksittynä.
Mikä tämä skenaario on#
Kun GNSS-signaalit katoavat, järjestelmä pitää aikaa omalla sisäisellä kellollaan. Kellon vaihe ajautuu hitaasti, ja kun ajautuma ylittää operatiivisen ajoitusmäärittelyn, olet pois palvelusta. Holdover kertoo, kuinka kauan pysyt määrittelyn sisällä GNSS:n menetyksen jälkeen — keskeinen autonomian laatumittari.
Skenaario ajaa 2 h aikajanan: 10 min GNSS-synkronointia, sitten 6600 s (1,83 h) estettynä, 20 ns:n ajoitusmäärittelyä vastaan, näytteistettynä 10 s:n välein. Se vertaa kahta kelloa samalla koodilla niiden omilla julkaistuilla kohinoilla:
- Kvantti: strontiumhilakello, avaruustavoite σ_y(1 s) = 1×10⁻¹⁵ (arXiv:1503,08457), maaperän demonstraattoritavoite, ei lennetty. σ_y(τ) on Allanin poikkeama, kellon taajuusvakauden vakiomitta keskiarvoistusajalla τ.
- Klassinen: Microchip SA.45s -sirukokoinen atomikello (CSAC), σ_y(1 s) = 3×10⁻¹⁰ (datalehti) — käytössä oleva kaupallinen osa.
Aja se#
cargo run -- scenarios/clock-holdover.toml
Python:
import json, kshana
r = json.loads(kshana.run(open("scenarios/clock-holdover.toml").read()))
print(r["quantum"]["fom"]["holdover_s"], r["classical"]["fom"]["holdover_s"])
Lue yhden rivin yhteenveto#
Kun siemenluku = 42, määrittely 20 ns ja katko 6600 s:
scenario 5ba83a232b94 | quantum holdover 6600s p95 1.20e-4ns integrity 1.000 security n/a (no attack) | classical holdover 2610s p95 19.7ns integrity 1.000 security n/a (no attack)
quantum holdover 6600s— optinen kello kestää koko 6600 s:n katkon rikkomatta 20 ns:ää. Sen 95. persentiilin vaihevirhe on 1.20e-4 ns, noin kymmenestuhannesosa nanosekunnista: se tuskin liikkuu.classical holdover 2610s— CSAC rikkoo 20 ns:n määrittelyn kohdassa ~2610 s, alle puolessa katkosta. Sen p95-vaihevirhe (19,7 ns) on aivan määrittelyviivalla.security n/a (no attack)— tämä skenaario ei määritä hyökkäystä, joten mitään ei ole havaittavaa eikä yhteenveto tulosta lukua. JSON sisältää silti kunkin kellon analyyttisen harhautuksen havaittavuusrajan kentässäfom.security(0,997 optiselle kellolle; 0,000 CSAC:lle, jonka oma liukukohina ikkunan yli ylittää jo 20 ns), merkittynäapplicable: falselohkossafigure_tiers. Havaitsemisen pisteytys todellista hyökkäystä vastaan on opastuksen 3 aihe.integrity 1.000— tässä tämä on suotimen itsejohdonmukaisuus (osuus katkon näytteistä Kalman-suotimen oman k-sigma-rajan sisällä), ei ilmailun vaaka- tai pystysuojaustaso (HPL/VPL). Katsodocs/INTEGRITY.md.
Ei-kehämäinen oraakkeli: miksi 2610 s CSAC:lle?#
Valkoisen taajuusmodulaation (white-FM) kellolle 1-σ-vaihevirhe kasvaa muodossa σ_x(T) ≈ √(q_wf · T), missä q_wf = σ_y(1 s)² on yksikössä s². Tämä suhde on julkaisusta NIST Special Publication 1065 (Riley, Handbook of Frequency Stability Analysis) — σ_y(τ)↔vaihe-suhteet — sama SP-1065-suhde, jota vastaan tests/calibration.rs validoi moottorin Allanin poikkeaman noin 2 %:n tarkkuuteen.
CSAC:lle q_wf = (3×10⁻¹⁰)² = 9×10⁻²⁰ s². Ratkaise aika, jolloin 1-σ-vaihe saavuttaa 20 ns = 2×10⁻⁸ s:
T ≈ (2e-8)^2 / 9e-20 = 4e-16 / 9e-20 ≈ 4444 s (1-sigma crossing)
Moottorin 2610 s ei ole tuo 1-σ-aika, eikä sen pidäkään olla. holdover_s on ensimmäinen 10 s:n ruudukkopiste (step_s = 10), jossa tämän siemennetyn realisaation absoluuttinen vaihevirhe ylittää 20 ns (src/fom.rs). Satunnaiskulun ensimmäinen tason ylitys tulee usein selvästi ennen aikaa, jolloin sen 1-σ-verhokäyrä saavuttaa tason, ja realisaatio kantaa myös jäännöstaajuusvirhettä, joka suotimelle jää 600 s:n synkronoinnin jälkeen. Laki siis kiinnittää mittakaavan, muutama tuhat sekuntia 3×10⁻¹⁰ kellolle 20 ns:ää vastaan, ei tarkkaa arvoa. Testi väittää sen ympärille 2000-3200 s:n kaistan, ei lukua.
Datalehtiankkurit itse ovat ulkoisia, mainittuina skenaarion merkkijonoissa provenance: optinen Sr-hilatavoite 1×10⁻¹⁵ (arXiv:1503,08457); Microchip SA.45s CSAC 3×10⁻¹⁰ (datalehti). Ja viety adev_curve vastaa datalehden σ_y(τ):ia noin 2 %:n tarkkuudella (tests/calibration.rs, NIST SP 1065). Piirrä se log-log-kaaviona ”Kellon vakaus (ADEV, Allanin poikkeama)” leikkikentässä.
Mitä testi lukitsee#
tests/tutorials.rs::tutorial2_clock_holdover_holds:
quantum holdover >= classical holdover(optisen kellon on pysyttävä vähintään yhtä pitkään),quantum holdover ≈ 6600 s(kestää koko katkon),classical holdover ∈ [2000, 3200] s— toleranssiväli SP-1065:n valkoisen FM:n skaalan ympärillä, ei taikaluku. Oraakkeli on laki, ei arvo.
Sudenkuopat ja yksiköt#
- Ajoitusluvut ovat nanosekunteina, ei koskaan metreinä. (Paikan holdover on eri paketti — katso inertiaosio opetusohjelmassa 3.)
- Suureen
q_wfyksikkö on s², ja se on yhtä suuri kuin σ_y(1 s)². Se on silta datalehden Allanin poikkeaman luvusta malliin. - Holdover on ruudukkoon kvantisoitu alaraja (
step_s). Älä tulkitse tarkkaa arvoa liikaa; lue väliä. integritytarkoittaa tässä suodattimen itsejohdonmukaisuutta, ei ilmailun eheyttä.
Mihin seuraavaksi#
- Taso 2: kiristä arvoa
threshold_nsluvusta 20 lukuun 10 ja seuraa, kuinka CSAC:n holdover laskee (2610 s → 1300 s, mitattu komennollaexercises/tier2_sweep.py), tai käytä tyyppiäkind = "sweep"taulukoimaan holdover CSAC:n kohinatasoaclassical_q_wfvasten (scenarios/sweep-clock-stability.toml: 25 pistettä, 10⁻²⁴ – 10⁻¹⁸ s², klassinen holdover 2610 s → 250 s). - Taso 3: lisää
runs = 200, niin tästä tulee Monte Carlo -joukko, ja lue [p05–p95]-holdover-väli (scenarios/clock-ensemble.tomltulostaaclassical holdover 844s [220-2130]). - Sitten päätösosa: Opetusohjelma 3 — Kvantti vs. klassinen kestävyys.