McuLab jediný zdroj v čipu jsou takty

Tohle je statická kopie kapitoly pro vyhledávače. Interaktivní verze má animované obrázky, kontrolní otázky a tlačítka, která příklad načtou do kalkulačky.

Rozpočet taktů regulační smyčky

Smyčka na 1 kHz má na 168MHz čipu 168 000 taktů na jednu otočku. To je celý rozpočet a nedá se z něj ukrojit — všechno, co se má stihnout, se do něj musí vejít.

taktů na periodu = fclk / fsmyčkyjediné dělení v celé kapitole
jedna perioda smyčky = 168000 taktů1000,0 µsADC a filtr9000,5 %5,36 µsPID6000,4 %3,57 µskinematika42002,5 %25,00 µskomunikace11000,7 %6,55 µsvyužito 4,0 %nejrychlejší možná smyčka: 24,7 kHzzbývá 161200 taktůpravidlo z minulé kapitoly: nad 70 % už se termíny nedají zaručit bez počítání
Perioda jako krabice a čtyři úlohy, které se do ní cpou. Zvyšuj frekvenci smyčky a sleduj, kdy zelený zbytek zmizí.

Co v takové smyčce doopravdy je

úlohatypicky taktůproč tolik
čtení ADC + filtr300–1500několik kanálů, klouzavý průměr
PID na osu150–600pár násobení, saturace, anti-windup
přímá kinematika2000–8000goniometrie — a to je ten sčítanec, co překvapí
komunikace500–2000sestavení rámce, CRC

Goniometrie je drahá a nikdo to nečeká. Jeden sinf() je na Cortex-M4 s plovoucí čárkou kolem sta taktů, bez jednotky pro plovoucí čárku klidně tisíc. Kinematika šestiosého ramene jich potřebuje desítky — proto stojí čtyři tisíce taktů, a proto se ve vnitřní smyčce nepočítá. Patří do vnější, pomalejší.

Dvě smyčky místo jedné

Standardní odpověď, a je vidět v číslech: rychlá smyčka (proud, 10–20 kHz) dělá jen to, co musí — čtení, PID, PWM, dohromady pár set taktů. Pomalá smyčka (poloha a kinematika, 1 kHz) dostane dvacetkrát víc času na dvacetkrát dražší práci. Je to táž dělba, jakou ControlLab popisuje kaskádou regulátorů — jen viděná v taktech místo ve frekvenčních charakteristikách.

Kde končí „prostě to zoptimalizuju“

Nejrychlejší možná smyčka je fclk dělené skutečnou prací. Když z toho vyjde míň, než je potřeba, existují jen tři cesty: rychlejší čip, míň práce (tabulka místo výpočtu, pevná řádová čárka místo plovoucí), nebo práci rozdělit na víc period. Čtvrtá neexistuje.

Vzorce v této kapitole

taktů — rozpočet periody
taktů = f_clk / f_smyčky [—]