Strojový překlad, nekontrolovaný rodilým mluvčím. Referenční je anglická verze.

ČasováníUpravit na GitHubuZdroj: docs/TIMING-HIL.md

Časování hardware-in-the-loop: odpojte anténu, ohodnoťte holdover

Telekomunikační a energetičtí operátoři zkoušejí časovací systém tak, že mu odeberou GNSS a sledují, co hodiny dělají. Kshana to za ně nedělá a jejich zařízení se nedotýká. Čte záznam časové chyby, který vytvořily vlastní přístroje operátora, rozdělí jej ve dvou časech, které operátor uvede, a každý krok změří proti veřejným maskám ITU-T. Druh scénáře je holdover-test; ukázkové scénáře jsou scenarios/holdover-test-example.toml a scenarios/holdover-test-ptp4l.toml.

Toto je stupeň 1 hardwarové bezpečnosti: pasivní, pouze příjem, žádné RF od Kshana (HARDWARE-SAFETY.md). Software pouze poradního charakteru, nikoli typově schválené zařízení. Tento postup nikdo nehodnotil, neschválil ani nezkontroloval a neříká nic o tom, zda systém splňuje doporučení.

Test holdoveru bodovaný ze záznamu časové chyby, ze skutečného běhu enginu v0.40.0 na scenarios/holdover-test-example.toml (601 vzorků každých 5 s). GNSS je operátorem odebráno v 600 s a obnoveno v 2400 s; časová chyba na konci holdoveru dosahuje 299 ns, po 675 s překračuje rozpočet 100 ns a 70 s po obnovení se vrací do pásma 100 ns. Verdikty: základní masky PASS, masky holdoveru FAIL, obálka holdoveru FAIL, obnova RECOVERED. Měřeno proti masce, nejde o schválení. Časy jsou tvrzením operátora, Kshana je neověřila. Pouze poradní charakter: výstup analýzy z výzkumného a inženýrského nástroje; nejde o typově schválené navigační zařízení ani o službu z oblasti bezpečnosti života.Test holdoveru bodovaný ze záznamu časové chyby, ze skutečného běhu enginu v0.40.0 na scenarios/holdover-test-example.toml (601 vzorků každých 5 s). GNSS je operátorem odebráno v 600 s a obnoveno v 2400 s; časová chyba na konci holdoveru dosahuje 299 ns, po 675 s překračuje rozpočet 100 ns a 70 s po obnovení se vrací do pásma 100 ns. Verdikty: základní masky PASS, masky holdoveru FAIL, obálka holdoveru FAIL, obnova RECOVERED. Měřeno proti masce, nejde o schválení. Časy jsou tvrzením operátora, Kshana je neověřila. Pouze poradní charakter: výstup analýzy z výzkumného a inženýrského nástroje; nejde o typově schválené navigační zařízení ani o službu z oblasti bezpečnosti života.

Postup#

Operátor provádí čtyři kroky. Kshana neprovádí žádný z nich.

Krok Co dělá operátor Co záznam ukazuje
1. Základ Nechá systém běžet zachycený na GNSS tak dlouho, jak test potřebuje (a poznamená si, kolik dní byl před tím zachycen). Časová chyba při disciplinaci.
2. GNSS odebráno Odebere GNSS testovanému systému, například kabel antény u přijímače nebo výstup vlastního simulátoru laboratoře, a zapíše si čas. Nejprve zkontrolujte příručku výrobce přijímače: některé přijímače napájejí anténu a některé potřebují na otevřeném portu zakončovač. Okamžik, kdy časová chyba začne kolísat.
3. Holdover Nechá systém na vlastním oscilátoru po plánovanou dobu. Holdover systému.
4. Zotavení Obnoví GNSS a zapíše si čas. Návrat časové chyby (nebo jeho absence).

Dvě věci musí udělat operátor, protože je Kshana udělat nedokáže:

  • Uvést dva časy. gnss_removed_s a gnss_restored_s jsou prohlášením operátora. Kshana neodhaluje odebrání ze záznamu a časy neověřuje. Chybný čas posune hranice kroků, a tím i výsledek.
  • Pro záznam i pro časy použijte tytéž hodiny. U logu hodin časová osa začíná prvním odečtem, takže oba časy jsou sekundy od prvního řádku logu.

Co zaznamenat#

Cokoli z následujícího, přes stávající čtečky clock_log (CLOCK-LOG-FORMATS.md):

Přístroj Formát Jak se záznam pořizuje
linuxptp ptp4l (servo podřízených nebo hraničních hodin) ptp4l spusťte s -m a ponechte řádky ptp4l[time]: master offset N sK freq ...
linuxptp phc2sys phc2sys řádky phc2sys[time]: CLOCK_REALTIME phc offset N sK ...
linuxptp ts2phc ts2phc řádky ts2phc[time]: /dev/ptpN offset N sK ...
chrony tracking.log chrony-tracking log tracking v chrony.conf
chrony statistics.log chrony-statistics log statistics v chrony.conf
čítač TAPR TICC ticc režim časových razítek proti referenci
export ASCII z TimeLab timelab fáze ve stanovené jednotce
soubor hodin RINEX rinex-clk jedny hodiny
cokoli jiného samples nebo csv_path dvojice time_s,time_error_ns, rovnoměrně vzorkované

Záleží na tom, co záznam měří. Log serva (linuxptp, chrony) zaznamenává offset, který démon změřil a koriguje: je to časová chyba zbylá pod řízením serva, nikoli nezávislé měření hodin proti UTC. Během kroku holdoveru testu, který referenci skutečně odebírá, log serva stále ukazuje, čemu démon věřil, což se může lišit od skutečné chyby. Čítač TICC nebo jiný čítač proti nezávislé referenci je silnější záznam; při hlášení výsledku uveďte, který jste použili.

Scénář#

kind = "holdover-test"
masks = ["prtc-a", "eprtc-a-holdover"]      # see docs/TELECOM-TIMING.md for the ids

[test]
gnss_removed_s = 600.0                      # the operator's statement
gnss_restored_s = 2400.0                    # omit if GNSS was not restored within the record
locked_duration_days = 5.0                  # how long it was locked before step 2 (sets the ePRTC-A period)
recovery_band_ns = 100.0                    # |TE| inside this counts as recovered
recovery_dwell_s = 60.0                     # ... and must stay inside this long

[series.clock_log]                          # or [series] samples = [[t, ns], ...] or csv_path = "..."
format = "ptp4l"
path = "holdover-2026-11-02.log"            # or text = "..." inline
kshana holdover-test.toml

Volitelné klíče: budgets (název, max_abs_te_ns, zdroj; výchozí hodnoty telecom-timing, pokud chybí) a clock = "..." uvnitř [series.clock_log] pro výběr jednoho zdroje z logu, který jich obsahuje několik.

Co zpráva obsahuje#

  • steps: pro základ, holdover a zotavení začátek a konec, počet vzorků a střední, rms, největší a koncovou hodnotu časové chyby.
  • masks: každá maska, kterou jste uvedli, změřená na kroku, který její podmínka jmenuje. Maska napsaná pro zachycené hodiny se měří na základu; maska napsaná pro holdover nebo autonomní hodiny na holdoveru. Každá kontrola má svůj limit, naměřenou hodnotu, rezervu a tabulku, ze které je přepsána. Maska, která potřebuje delší záznam, než krok poskytl, je INCOMPLETE, nikdy se neextrapoluje; maska, kterou engine nedokáže pro vzorkovací interval záznamu vyhodnotit, je NOT-EVALUATED s uvedením důvodu.
  • holdover: relativní frekvenční offset, který systém držel (sklon přímky metodou nejmenších čtverců přes časovou chybu holdoveru, v ns/s, což jsou díly na miliardu), reziduum kolem této přímky, největší absolutní časová chyba a kdy nastala, a skok v okamžiku odebrání.
  • holdover_envelope: obálka holdoveru ePRTC-A podle tabulky 3 ITU-T G.8272.1, z locked_duration_days, s časem, kdy je poprvé překročena.
  • budgets: čas po odebrání, kdy je každý rozpočet časové chyby poprvé překročen.
  • recovery: zda |TE| vstoupila do pásma a zůstala v něm po dobu setrvání, jak dlouho po návratu GNSS to začalo, špička po obnovení a největší skok mezi po sobě jdoucími vzorky během zotavování.
  • curves: MTIE a TDEV kroků základu a holdoveru.
  • verdicts: jednoslovné shrnutí na krok.

Každé číslo nese svou jednotku a to, odkud pochází, v bloku units zprávy.

Slova a limity#

  • Výsledek je změřen proti masce. Masky jsou přepsány z volně ke stažení dostupných doporučení ITU-T (tytéž tabulky jako druh telecom-timing, uvedené v TELECOM-TIMING.md) a každá položka, kterou doporučení nechávají „k dalšímu studiu“, chybí, není doplněna. Kshana netvrdí, že hodiny nebo systém splňují doporučení nebo jsou podle něj schváleny, a zpráva to netvrdí také.
  • MODELLED. Logika kroků, proložení přímky a pravidlo zotavení jsou kontrolovány na záznamech sestavených ze vzorců, jejichž výsledky jsou známy před během; žádný laboratorní holdover nebyl ohodnocen proti vnějšímu orákulu a žádný partner ani laboratoř se na ničem nedohodli. Než by bylo možné povýšit jakýkoli údaj pro třídu hodin, byla by zapotřebí časovací laboratoř.
  • Co se nepokrývá, uvedeno v každé zprávě: zda bylo GNSS skutečně odebráno a obnoveno ve stanovených časech; každý krok, který operátor nezaznamenal; masky definované přes filtr 0,1 Hz pro záznam vzorkovaný pomaleji než jednou za sekundu; vlastní nejistota měření přístroje; a každý postup doporučení nad rámec záznamu časové chyby (teplotní profily, zátěž paketové sítě).
  • Pásmo zotavení je vlastní volba testu. Výchozí hodnota 100 ns je maximální absolutní časová chyba PRTC-A (ITU-T G.8272); je to pohodlná čára, nikoli požadavek kteréhokoli doporučení na zotavení.
  • Žádná vysílací cesta. Kshana čte soubory. Nevytváří signál a odebrání GNSS v laboratoři se provádí vlastním vybavením laboratoře a na její vlastní odpovědnost.

Povrchy#

holdover-test je druh scénáře, takže běží všude, kde běží druhy: kshana <scenario.toml>, Rust API (kshana::api::run_toml), vazba Pythonu (kshana.run), sestavení WebAssembly a npm (vložené samples nebo clock_log.text; klíče souborů tam nejsou dostupné), server MCP (run_scenario, pouze vložený obsah) a spouštěč scénářů Kshana Studio. Oba soubory scénářů jsou přibaleny (kshana example holdover-test-example).