Latence v řídicí smyčce

Control loop latency

Latence v řídicí smyčce (control loop latency) je časové zpoždění mezi vznikem informace (senzorické měření nebo příkaz) a jejím efektivním využitím v regulátoru či akčním členu. V bezpilotních letových systémech (UAV) s vysokými nároky na stabilitu a přesnost představuje latence kritický omezující faktor. Zvyšuje fázovou rezervu spotřebovanou zpožděním, snižuje ziskovou rezervu, zhoršuje potlačení rušení a může vést k oscilačnímu chování až k ztrátě stability. Tento článek komplexně rozebírá zdroje latence v komunikačním stacku, jejich kvantifikaci a navrhuje metody mitigace od úrovně hardwaru přes operační systém až po návrh regulátorů.

Definice a metriky latence

  • One-way latency: čas od odeslání po doručení v jednom směru.
  • End-to-end (E2E) latency: součet všech částečných zpoždění od senzoru po akční člen, včetně filtrace, plánování, přenosu a frontování.
  • Jitter: rozptyl latence (směrodatná odchylka nebo percentilové statistiky); důležitý pro předvídatelnost.
  • Packet loss / drop rate: ztráta paketů; interaguje s latencí (fronty se plní až do chvíle, kdy začne docházet ke ztrátám).
  • Delay budget: přidělený rozpočet zpoždění jednotlivým segmentům řetězce.

Zdrojové složky latence v komunikačním stacku UAV

  1. Fyzická vrstva a linka: přenosové rychlosti a rámcování (UART, CAN/CAN-FD, SPI, I2C, Ethernet, Wi-Fi, LTE/5G); kódování a retransmise.
  2. MAC/Linkové fronty: kolize, CSMA/CA (Wi-Fi), plánování přístupu, priorita rámců, velikost MTU.
  3. Síťová/transportní vrstva: IP směrování, UDP/TCP chování, Nagleův algoritmus, congestion control (u TCP), checksum offload.
  4. Middleware: MAVLink, RTPS/DDS (ROS 2), uORB; serializace, (de)marshalling, kopírování dat, QoS profily a discovery.
  5. OS a ovladače: přeplněné RX/TX buffery, ISR/softirq, NAPI, interrupt coalescing, plánování vláken.
  6. Aplikační vrstva: filtry (EKF/VIO), downsamplování, dávkování měření, pipeline zpracování.

Typické hodnoty latencí podle technologie

Následující orientační rozsahy (pro krátké vzdálenosti a správná nastavení) slouží k návrhu rozpočtu latence:

  • SPI: ~5–50 µs na rámec (záleží na frekvenci a délce); velmi nízký jitter.
  • I2C: ~50–500 µs; závislé na rychlostním módu a kolizích na sběrnici.
  • UART (MAVLink): ~0,5–5 ms při 921 kbps; výrazně roste při nízkém baudratu.
  • CAN: ~0,5–2 ms; CAN-FD snižuje latenci a zvyšuje propustnost.
  • Ethernet (100/1000BASE-T): ~50–500 µs one-way v lokální síti; determinističnost závisí na switchích a QoS.
  • Wi-Fi: ~2–20 ms s vysokým jitterem (závisí na rušení a power-save mechanismech).
  • LTE/5G: ~10–50 ms (LTE), ~5–20 ms (5G NSA); variabilita podle zátěže buněk a rádiových podmínek.

Modelování zpoždění a jeho vliv na stabilitu

Časové zpoždění v řídicí smyčce lze aproximovat jako pure time-delay e−sT nebo pomocí Padého aproximace. Zpoždění spotřebovává fázovou rezervu úměrně frekvenci: při frekvenci ω vyvolá fázové zpoždění −ωT (v radiánech). Pro vnitřní rychlé smyčky (rate/attitude) je tolerance zpoždění nejnižší; poziční smyčky snesou více.

  • Delay margin: maximální tolerovatelné T před ztrátou stability; souvisí se ziskovou a fázovou rezervou.
  • Small-gain a μ-analýza: hodnocení robustnosti vůči časově variabilnímu zpoždění a jitteru.
  • Diskrétní čas: při výpočtu se vzorkováním je třeba zahrnout “computational delay” (obvykle 0–1 vzorek) a “sensor-to-actuator” pipeline.

Rozklad E2E latence: příklad rozpočtu

Segment Typ Rozpočet Poznámka
IMU → MCU (SPI) HW/Link 30 µs DMA + vysoká frekvence SPI
ISR → EKF OS/CPU 200 µs ISR přenos do ring bufferu, bez kopírování
EKF výpočet Algoritmus 400 µs Vektorové instrukce, fixed-point
Regulátor (rate/att) Algoritmus 150 µs PID/LQR, saturace
MCU → ESC (DShot) Link 150 µs DShot600 až 1200
Celkem ~0,93 ms Jitter < 0,1 ms

Měření latence a jitteru

  • Hardwarové timestampy: použití TSC/HPET nebo MCU časovačů s nanosekundovým/µs rozlišením.
  • PTP/1588 nebo časová synchronizace MAVLink TIMESYNC: k opravě hodinových posunů mezi moduly.
  • Tracing: ftrace/perf/ETW-analogy, LTTng, eBPF; časování ISR, softirq, vláken.
  • Síťová analýza: tshark/pcap, RTPS a MAVLink dissektory; měření jednosměrného zpoždění s pevnou časovou referencí.
  • Loopback testy: generování impulsů a osciloskopické měření odezvy na PWM/DShot.

Vliv architektury řízení (vnitřní vs. vnější smyčky)

UAV řízení je hierarchické: rate → attitude → velocity → position → mission. Čím vnitřnější smyčka, tím přísnější limit latence. Vnitřní smyčky by měly běžet na stejném procesoru/bloku jako senzory a akční členy, s minimálním overheadem OS. Vnější smyčky mohou komunikovat přes méně deterministická média (Ethernet, Wi-Fi) za předpokladu dodržení QoS a filtrů.

OS, plánování a ovladače: vliv na latenci

  • Realtime kernel: PREEMPT_RT (Linux) nebo RTOS (NuttX, FreeRTOS); vázání vláken na CPU, izolace jader (CPU isolation).
  • Prioritizace vláken: rate monotonic nebo deadline-oriented; prevence priority inversion (mutexy s priority inheritance).
  • IRQ/TX-RX tuning: NAPI polling, limitace ring bufferů, vypnutí nadměrného interrupt coalescing pro nízký jitter.
  • Zero-copy a pinning: vyhýbání se zbytečným kopiím, pinned memory, NUMA affinity.

Middleware a protokoly: MAVLink, RTPS/DDS, ROS 2 QoS

  • MAVLink: lehký UDP/serial protokol; minimalizujte velikost zpráv, upřednostněte one-way telemetrii před request/response ve kritických cestách, nastavte rate limits a filtrační pravidla.
  • RTPS/DDS: nastavte QoS profily (reliability = best effort pro nízkou latenci, history = keep last, depth = 1–2, deadline a latency budget), omezte discovery chatter (statické endpointy).
  • uORB/ROS 2: preferujte intra-process publikování/odběr, loaned messages a zero-copy transporty.

Vliv senzorů a filtrace

  • IMU: vyvážení mezi DLPF (zpoždění) a šumem; vysoká ODR s minimálním filtrem a následnou softwarovou filtrací s malým fázovým skluzem (např. filtry s nulovou fází pro ne-online cesty, nebo komplementární/causal filtry pro online).
  • VIO/kamera: režijní zpracování (10–40 ms) kompenzujte predikcí stavového odhadu a časově zarovnanými měřeními (time offset, measurement augmentation).
  • GNSS: nižší frekvence a vysoké zpoždění; fúze v EKF s explicitním modelem zpoždění a odhadu časového offsetu.

Mitigace na úrovni sítě a linky

  • QoS/DSCP na Ethernet/Wi-Fi switchech; mapování na vysokoprioritní fronty.
  • MTU a fragmentace: preferujte větší MTU na kabelových linkách (jumbo frames) a minimalizujte fragmentaci na bezdrátových.
  • Škálování front: omezte velikost TX/RX ringů, aby se minimalizoval bufferbloat.
  • Kanál a pásmo: na Wi-Fi pevný kanál, vypnutí power-save, 5 GHz pásmo; na LTE/5G vyhnout se přetíženým buňkám (pokud je to možné).
  • Přechod na deterministické linky: pro vnitřní smyčky – SPI/CAN-FD/Ethernet (TSN) místo Wi-Fi.

Mitigace v návrhu softwaru

  • Pipeline s pevnou hloubkou: jednotná délka front, drop oldest při přetížení.
  • Back-pressure: zdroje zpomalují při plných cílových frontách, aby se předešlo kaskádovému nárůstu latence.
  • Deterministické alokace: static memory, předalokované pooly, žádný GC v kritických vláknech.
  • Dávkování rozumně: malý batch pro zvýšení propustnosti, ale s limitem, aby nerostla latence.

Mitigace v návrhu regulátorů a odhadovačů

  • Přediktivní kompenzace zpoždění: Smithův prediktor, predikce stavu dopředu o T, Padé-kompenzace ve frekvenční doméně.
  • IMC/H∞ loop-shaping: návrh s robustností vůči zpoždění a variabilitě parametrů.
  • Sample-and-hold modely: zahrnout “computation + transport delay” jako ekvivalentní z-posun v diskrétním modelu.
  • Delay-aware EKF/UKF: zpětné vložení (out-of-sequence measurements), augmentace stavu o časový offset, časově zarovnaná měření.
  • Feedforward: pro známé perturbace (např. tah vrtulí při změnách škrticí klapky) snižuje závislost na zpětné vazbě.

Event-triggered a time-triggered řízení

Time-triggered přístup s pevným periodickým plánem minimalizuje jitter a usnadňuje dokazování časování. Event-triggered snižuje průměrnou propustnost, ale vyžaduje opatrné prahové hodnoty, aby nevyvolal náhlé špičky a variabilní latenci. Hybridní schémata používají pevné periody pro vnitřní smyčky a event-trigger pro méně kritické úlohy.

Časová synchronizace a kalibrace času

  • PTP/1588 nebo udržované offsety mezi moduly (IMU, palubní počítač, companion computer).
  • MAVLink TIMESYNC: pravidelné měření a kompenzace clock skew a offset.
  • Kalibrace pipeline: měření konstantních posunů (např. kamera → VIO → EKF) a explicitní kompenzace v softwaru.

Bezpečnostní a fail-safe aspekty při skocích latence

  • Detekce anomálií: monotónně rostoucí E2E latence nebo špičky jitteru spouští de-rate (snížení agresivity regulace) nebo přechod do hover/loiter.
  • Degradované režimy: přechod z VIO na pouze IMU+baro; z Wi-Fi řízení na autonomní režim.
  • Watchdogy: time-based (nedodržení deadlinu) a sequence-based (vynechané vzorky) s bezpečným výstupem.

Postup návrhu: od rozpočtu po validaci

  1. Stanovte požadavky: maximální E2E pro vnitřní smyčky < 1 ms, jitter < 0,1 ms (příklad).
  2. Návrh architektury: senzory + vnitřní regulátor na MCU/RTOS; externí výpočty (VIO/ML) na companion