ControlLab základy PID regulace

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.

Vzorkování, šum a číslicová realizace

Všechno předchozí předpokládalo, že regulátor běží spojitě. Ve skutečnosti běží v procesoru, který se jednou za Ts probudí, přečte měření, spočítá a drží výsledek až do příště.

0.05.010150.00.51.0čas [s]uco by spojitý regulátor chtělco akční člen dostane
Přerušovaná čára je, co by spojitý regulátor chtěl. Plná schodovitá je, co akční člen dostane. Ten rozdíl je cena za vzorkování — a chová se přesně jako dopravní zpoždění.

Vzorkování = dopravní zpoždění

Tvarovač nultého řádu drží hodnotu po celý interval, takže průměrné zpoždění je Ts/2. A dopravní zpoždění, jak víme z kapitoly o Bodeho diagramu, ubírá fázi, kterou nic nevrátí. Praktické pravidlo:

TsTc10  kde  Tc = ωc10 až 20 vzorků na periodu ω_c

Deset vzorků na periodu na frekvenci řezu ubere zhruba 18° fáze — to je hodně, ale ještě únosné. Dvacet vzorků ubere 9° a to už je pohodlné. Pod deset nechoď.

0.05.0101520250.01.02.0wyspojitý regulátorvzorkovaný0.02.04.06.08.0100.02.04.0akční veličina drží mezi vzorky (tvarovač 0. řádu)čas [s]u
Ts = 0,171 s  ·  vzorkování ubere zhruba 9,0° fáze (Ts/2 jako zpoždění)  ·  v pořádku
Stáhni počet vzorků na periodu a sleduj, jak se odezva rozjíždí od té spojité — a jak roste překmit. Dolní graf ukazuje schody, které akční člen dostává. Zkus deset vzorků a pak tři.

Přírůstkový (rychlostní) tvar

Místo aby se počítala celá akční veličina, počítá se jen její změna:

Δuk = Kp[(ek − ek−1) + TsTi ek + ...] ,  uk = uk−1 + Δukpřírůstkový tvar

Má tři praktické výhody, kvůli kterým je v průmyslu skoro standardem: integrátor je „schovaný“ ve stavu uk−1, takže se přeplnění řeší samo, když se u ořeže; přechod z ručního na automatický režim je bezešvý; a když regulátor spadne, akční člen zůstane tam, kde byl, místo aby skočil na nulu.

Šum: co se s ním dá dělat

  • Filtruj měření, ne akční veličinu. Filtr na měření je v odchylce a regulátor o něm ví; filtr až za regulátorem přidá zpoždění, na které nikdo nereaguje.
  • Filtr měření patří do rozpočtu fáze. Filtr s časovou konstantou Tf ubere kolem ωc fázi stejně jako soustava. Když je Tf srovnatelné s 1/ωc, zaplatíš za čistý signál stabilitou.
  • Průměrování přes celou periodu vzorkování (oversampling) je skoro vždycky lepší než klouzavý průměr přes několik vzorků — nepřidává zpoždění navíc.
  • Pásmo necitlivosti na odchylku je poslední možnost. Zastaví to třesení akčního členu, ale zavádí do smyčky nelinearitu a s ní trvalou odchylku velikosti toho pásma.

Nejčastější chyba v číslicové realizaci: integrovat násobením konstantou místo periodou vzorkování. Kód I += Ki * e; je závislý na tom, jak rychle běží smyčka — změníš periodu a regulátor se naladí sám, jenom jinak, než jsi chtěl. Správně je I += Ki * e * Ts;. Táž chyba u derivace: dělit se musí skutečným Ts, ne počtem kroků.

Vzorce v této kapitole

Ts — perioda vzorkování
Ts ≤ Tc/10, Tc = 2π/ωc [s] praxe
φ_s — fáze ztracená vzorkováním
Δφ ≈ ωc·Ts/2 [rad] [rad] tvarovač 0. řádu
Δu — přírůstkový (rychlostní) tvar PID
Δu_k = Kp[(e_k − e_{k−1}) + (Ts/Ti)·e_k + (Td/Ts)(−y_k + 2y_{k−1} − y_{k−2})] [—] číslicová realizace