====== PID regulátor - Topení ======
{{:cs:mervis-ide:35-help:b37.png}}
===== Název bloku =====
B37_REVERSE_PID_CONTROLLER
===== Volání v ST =====
PROGRAM B37_TEST
VAR
XIN,WIN,COOLING:REAL;
FB: LIB.CORE.V1_0.B37_REVERSE_PID_CONTROLLER;
END_VAR
FB(X:=XIN, W:=WIN, OUT=>COOLING);
END_PROGRAM
===== Knihovna =====
LIB\CORE
===== Verze =====
V1.0
===== Popis =====
Blok implementuje PID regulátor (s parametry: pásmo proporcionality, integrační časová konstanta, derivační časová konstanta, offset, min/max hodnoty a možnosti nastavit hodnotu pro vypnutý regulátor).
===== Vstupy =====
|Vstup |Typ |Význam |Výchozí hodnota|
|W |REAL |Žádaná hodnota (obvykle teplota) |0 |
|X |REAL |Řízená hodnota (obvykle teplota) |0 |
|CONTROLLERTYPE|[[cs:mervis-ide:35-help:035-software_basic:060-libraries:015-proto|CONTROLLERTYPE]]|Typ regulátoru (topení/chlazení) |chlazení |
|BP |BOOL |Když se nastaví na hodnotu TRUE, chová se jako P regulátor |False |
|ENABLED |BOOL |Povolení činnosti (FALSE vypne regulátor) |True |
|XP |REAL |Pásmo proporcionality |30 |
|OFF |REAL |Offset, přidávaný k žádané hodnotě W |0 |
|TI |REAL |Integrační časová konstanta [s] |120 |
|TD |REAL |Derivační časová konstanta [s] |1 |
|MIN |REAL |Minimální hodnota výstupu OUT (obvykle 0) |0 |
|MAX |REAL |Maximální hodnota výstupu OUT (obvykle 100) |100 |
|DISVAL |REAL |Hodnota pro výstup OUT při vypnutí regulátoru (ENABLED=FALSE)|0 |
===== Výstupy =====
|Výstup |Typ |Význam |
|OUT |REAL|Výstupní signál (obvykle ventil, otevření 0 až 100 %)|
|PFACTOR|REAL|Složka P výstupního signálu |
|IFACTOR|REAL|Složka I výstupního signálu |
|DFACTOR|REAL|Složka D výstupního signálu |
===== Funkce =====
Na vstupu regulátoru je odchylka //e=(w+Off)-x//. Výstup regulátoru //y// je dán //out=-100/Xp×(e+1/Ti×∫e+ Td×e')+MIN//, kde první část je proporcionální složka (P-složka, je popsána v [[cs:mervis-ide:35-help:035-software_basic:060-libraries:020-basic-analogue-boxes:010-controllers:010-reverse-acting-heating:010-b33_reverse_p_controller|bloku B33]]), druhá část je integrační časová složka (I-složka, je popsána v [[cs:mervis-ide:35-help:035-software_basic:060-libraries:020-basic-analogue-boxes:010-controllers:010-reverse-acting-heating:015-b35_reverse_pi_controller|bloku B35]]) a třetí část je derivační časová složka (D-složka). Výstup regulátoru je omezen hranicemi //MIN// a //MAX//, viz obrázek v [[cs:mervis-ide:35-help:035-software_basic:060-libraries:020-basic-analogue-boxes:010-controllers:005-direct-acting-cooling:010-b32_p_controller|bloku B32]].
Pojďme vysvětlit funkci D-složky pomocí obrázku níže. Pro zjednodušení budeme považovat //Ti=0//, kdy se nastaví I-složka na nulu. Když //w+Off=0// a vstup //x// roste z //0// na //-1// v čase //t=Td//, pak D-složka má konstantní hodnotu rovnu //100// a P-složka roste na hodnotu //100/Xp//.
Blok má vstup //bp//, který, když je //true//, nastaví I-složku a D-složku na 0.
Parametr //enable// umožňuje vypnout regulátor. Když //enable=true,// pak je regulátor vypnutý a //out=disval//.
Funkce v případě špatného nastavení:\\
Když //Xp<= 0//, pak //out=MAX// pro //x>= w+Off// a //out=MIN// pro //x< w+Off//. Všimněte si, že I-složka a D-složka jsou v tomto případě //0//. Když //Ti<= 0//, I-složka je považována //za// rovnu //0//. Když //Td<= 0//, D-složka je považována //za// rovnu //0//. Když //MAX