Zaregulovávání soustav v Domat IDE, 2. část
Dopravní zpoždění je doba, která uplyne mezi akčním zásahem a jeho projevením se na měřené hodnotě. Typicky jde o čas, který zabere doprava média mezi ventilem a čidlem. Snažíme se, aby tato doba byla co nejkratší, ideálně v řádu sekund. Při dlouhém dopravním zpoždění může být soustava až nezaregulovatelná.
Dopravní zpoždění
Dopravní zpoždění je doba, která uplyne mezi akčním zásahem a jeho projevením se na měřené hodnotě. Typicky jde o čas, který zabere doprava média mezi ventilem a čidlem. Snažíme se, aby tato doba byla co nejkratší, ideálně v řádu sekund. Při dlouhém dopravním zpoždění může být soustava až nezaregulovatelná. Voda se v potrubí pohybuje rychlostí cca 1 m/s, vzduch ve VZT kanálu asi 2–5 m/s. Proto by například u VZT s vodním ohřevem měl být regulační ventil co nejblíže registru ohřevu a čidlo teploty na vzduchu bezprostředně za ventilátorem (při dodržení zklidňovací délky potrubí).
Na následujícím obrázku je simulovaný průběh vstupů a výstupu PI regulátoru, který reguluje soustavu 1. řádu se zesílením 0,9 a časovou konstantou 20 s. Dopravní zpoždění soustavy je 0 s. Parametry regulátoru jsou Xp = 15 K, Ti = 30 s.

Regulátor s Xp = 15 K, Ti = 30 s, soustava bez dopravního zpoždění
Po zavedení jednotkového skoku (změna požadované hodnoty z 20 na 22 °C) skutečná hodnota (zelená) plynule dosáhne hodnoty požadované (modrá), výstup regulátoru (červeně) se ustálí během asi 20 s na nové hodnotě. To lze považovat za ideální chování.
Jakmile ovšem zavedeme do soustavy dopravní zpoždění – zde 3 s, v praxi by to bylo více –, například nahradíme elektroohřev s topnými spirálami vodním ohřívačem, ustálení již trvá několikanásobně déle (asi 40 s), nicméně stále bychom mohli systém mít za dobře nastavený:

Regulátor s Xp = 15 K, Ti = 30 s, dopravní zpoždění soustavy 3 s
Pokud dopravní zpoždění dále zvýšíme, stačí na 5 s, k čemuž stačí při montáži prodloužit vzdálenost mezi ventilem a registrem ohřevu, k ustálení dojde až za skoro 2 minuty a navíc dochází k překmitu (což u vzduchotechniky nevadí, ovšem u horkovodního výměníku by již mohl vybavit bezpečnostní termostat):
Kdybychom chtěli toto chování zlepšit, začneme nejspíše zvětšením šířky pásma. Po jejím zdvojnásobení na 30 K se soustava již chová přijatelně:
Podobně bychom řešili i reálné regulační obvody.
Ofset
U některých situací můžeme využít ofset, tedy vodorovný posun charakteristiky.
Typické použití je u kaskádní regulace teploty, kdy první PI regulátor porovnává skutečnou teplotu v místnosti s požadovanou hodnotou a jeho výstupem je korekce teploty pro požadovanou hodnotu na přívodu.
Zjednodušené schéma je zde:
Regulátor prostoru bude nastaven tak, aby při rozdílu teploty v prostoru a požadované teploty poskytl korekci požadované teploty přívodní. Omezovací blok zajišťuje dodržení hygienického minima a maxima (15 … 35 °C). Na obrázku je rozdíl teplot 20 − 19 = 1 K, systém lehce nedotápí, proto je požadovaná hodnota na přívodu zvýšena o 5 K na 25 °C.
Minimum a maximum
V předchozím případě pracujeme ale také s parametry Min a Max. Jde o meze, v nichž se smí pohybovat výstupní signál. Výchozí hodnoty jsou 0 a 100 %, což odpovídá většině výstupních periferií, jako jsou ventily a klapky – rozsah 0 až 100 % dává smysl pro vizualizaci i uvádění do provozu, ve výstupním driveru se tato hodnota převádí na fyzický signál 0…10 V či 4…20 mA.
V kaskádní regulaci není u regulátoru prostoru Min a Max nastaveno na 0 a 100 (%), ale −10 a 10 (K). V těchto hodnotách se totiž bude pohybovat korekce. Z toho plyne i nastavení šířky pásma – tento parametr je z důvodů kompatibility se staršími verzemi programu vztažen na 100 jednotek výstupu, tedy běžně na 0…100 %. Je to vlastně definice strmosti. Zde máme ovšem rozsah výstupu −10 … 10 = 20 K, tedy při nastavení Xp = 20 bude efektivní šířka pásma 4 K (18 … 22 °C).
Platí tedy:
Xp = 100 * Xpeff/(Max − Min)
přičemž, aby při rovnosti teploty požadované a teploty v prostoru byl výstup korekce 0, musíme celou křivku posunout doprava o ofset
Of = Xpeff/2
Nezapomeňme, že Xpeff, efektivní šířka pásma, je rozsah změn měřené veličiny, který u P regulátoru odpovídá rozsahu výstupního signálu – na obrázku výše se pohybujeme po šikmé části charakteristiky: x je v intervalu 18 … 22 °C, výstup v intervalu −10 … 10 K. Podobně pro Xpeff = 8 K (tedy korekce by byla 10 K při rozdílu teplot 4 K) bychom nastavili Xp = 40, Of = 4.
Někdy se v praxi toto poměrně komplikované nastavení obchází tak, že se regulátor nechá s výchozími mezemi 0 … 100 % nebo −100 … 100 % a korekce se následně spočítá pomocí dvoubodové lineární transformace:
Vlastní PI(D) regulátor
Ostatní parametry PI regulátoru jsou popsány v nápovědě k Domat IDE. V knihovně najdeme ještě regulátor PID, který navíc obsahuje derivační složku, ale ten se používá jen výjimečně. Vzhledem ke komplikovaným vlastnostem regulovaných soustav je bezpečnější použít dostatečně zatlumený PI regulátor, čímž se zvýší stabilita regulovaného okruhu.
Někdy se může stát, že implementace PI regulátoru ze standardní knihovny Lib.Core nebude pro určité použití vyhovovat: například by mohlo být vhodné při vypnutí a opětovném zapnutí regulátoru zachovat naintegrovanou I-složku. V jazyce ST je samozřejmě možné napsat regulátor vlastní, třeba podle oblíbeného kódu, se kterým již máme zkušenost a na který jsme zvyklí. PI regulátor, který má místo šířky pásma jako parametr zesílení (vstup K), může v Domat IDE vypadat například takto:
NAMESPACE Lib NAMESPACE Core NAMESPACE V1_0 FUNCTION_BLOCK PI VAR tmp : REAL; e : REAL; EPrev : REAL; y : REAL; YPrev : REAL; Integral : REAL; IYes : BOOL; END_VAR VAR_INPUT In : REAL := 0; // x – měřená hodnota SetPoint : REAL := 0; // w – požadovaná hodnota IsDirect : BOOL := FALSE; // charakteristika „topení“ Enabled : BOOL := TRUE; Bp : BOOL := FALSE; K : REAL := 1; // zesílení Off : REAL := 0; Ti : REAL := 120; // integrační konstanta, v s IMin : REAL := 0; // dolní mez IMax : REAL := 100; // horní mez Disval : REAL := 0; // výstupní hodnota při stavu „disabled“ END_VAR VAR_OUTPUT Out : REAL; PFactor : REAL; IFactor : REAL; END_VAR INIT YPrev := 0; y := 0; Integral := 0; IYes := TRUE; END_INIT (*function block's body*) e := SetPoint - In; IF IsDirect THEN e := -e; END_IF; IF IMax < IMin + EPSILON THEN Out := IMax; EPrev := e; (* and quit; *) ELSE IF Ti <= 0.0 THEN Integral := 0.0; IYes := FALSE; END_IF; IF K <= 0.0 THEN IF IsDirect THEN IF In <= (SetPoint + Off) THEN Out := IMin; ELSE Out := IMax; END_IF; ELSE (* if is reverse *) IF In <= (SetPoint + Off) THEN Out := IMax; ELSE Out := IMin; END_IF; END_IF; EPrev := e; (* and quit; *) ELSE IF NOT Enabled THEN Out := Disval; Integral := 0.0; //nuluje I složku při zakázání EPrev := e; (* and quit; *) ELSE IF Bp THEN IYes := FALSE; Integral := 0.0; END_IF; IF IsDirect THEN y := K * (e - Off); ELSE y := K * (e + Off); END_IF; IF y < IMin THEN y := IMin; END_IF; IF y > IMax THEN y := IMax; END_IF; PFactor := y; IF IYes THEN (* dy *) tmp := time_to_real( GetDeltaTime() ) * (EPrev + e) * 0.5 / 1E07; IF ( YPrev < IMin + EPSILON AND tmp > 0.0 ) OR ( YPrev >= IMax - EPSILON AND tmp < 0.0 ) OR ( YPrev > IMin + EPSILON AND YPrev < IMax - EPSILON ) THEN Integral := Integral + (K / Ti * tmp ); END_IF; IF y + Integral > IMax THEN Integral := IMax - y; END_IF; IF y + Integral < IMin THEN Integral := IMin - y; END_IF; y := y + Integral; END_IF; IF y < IMin THEN y := IMin; END_IF; IF y > IMax THEN y := IMax; END_IF; Out := y; YPrev := y; EPrev := e; END_IF; END_IF; END_IF; Ifactor := Integral; END_FUNCTION_BLOCK END_NAMESPACE END_NAMESPACE END_NAMESPACE
Tento regulátor by se dal použít například tam, kde výstupní signál má stejnou fyzikální veličinu jako signály vstupní, například při regulaci výkonu FVE. (S nulovou I konstantou a výchozím zesílením 1 funguje v podstatě jako odečítací blok.) Funkční blok využívá některé standardní knihovní prvky, proto je součástí jmenného prostoru Lib.Core.V1…0, stejně jako standardní knihovní P/PI/PID regulátory.

Domat Control System s.r.o. patří k evropské špičce dodavatelů řídicích systémů a regulací pro inteligentní budovy, průmysl a energetiku. Cílem této ryze české společnosti je vyvíjet, vyrábět a dodávat řídící systémy v mezinárodním měřítku.