====== 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