====== Kaskádní regulátor ====== {{:cs:mervis-ide:35-help:cascadecontroller.png}} ===== Pojmenování funkčního bloku ===== Lib.Mervis.v2_0.CascadeController ===== Popis ===== Blok slouží pro řízení zařízení zapojených do kaskády ===== Potřebné reference projektu ===== * Lib.Mervis ===== Použití v ST ===== program test var cctrl: lib.mervis.v2_0.CascadeController; end_var cctrl(); end_program ===== Popis vstupu a výstupu ===== Vstupy Jméno Datový typ Povolený rozsah Retain Nutno poipojit Význam FirstStageRequest usint 0..4 Ano Ne Určuje první aktivní zařízení (0 = automaticky, 1..4 = odpovídající zařízení) StageCountLimit usint 0..NumberOfStages Ano Ne Maximální počet povolených zažízení v kaskádě (0 = určeno automaticky) Stage1 [[StageInfoType_v2.0.htm|StageInfoType]]   Ne Ano Sdružené info o prvním zařízení Stage2 [[StageInfoType_v2.0.htm|StageInfoType]]   Ne Ne Sdružené info o druhém zařízení Stage3 [[StageInfoType_v2.0.htm|StageInfoType]]   Ne Ne Sdružené info o třetím zařízení Stage4 [[StageInfoType_v2.0.htm|StageInfoType]]   Ne Ne Sdružené info o čtvrtém zařízení MeasuredOutput real   Ne Ano Skutečná hodnota regulované veličiny SetPoint real   Ne Ano Žádaná hodnota regulované veličiny Enable bool   Ne Ano Povolení provozu TrackingInput real 0..100 % Ne Ne Omezení výstupního výkonu v procentech - počítáno jako celkový výkon kaskády. Využitelné pouze v paralelním módu. NumberOfStages usint 1..4 Ne Ne Instalovaný počet zařízení LimitForRunTime time   Ne Ne Doba nutná pro automatické vystřídání prvního zařízení v pořadí LimitForAttach real   Ne Ne Limitni hodnota [[IntegralCriterion.htm|kritéria]] pro aktivaci dalšího zařízení LimitForDettach real   Ne Ne Limitni hodnota [[IntegralCriterion.htm|kritéria]] pro deaktivaci posledního zařízení ChangeOrderStrategy [[ChangeOrderStrategyType.htm|ChangeOrderStrategyType]]   Ne Ne Volba metody pro střídání prvního zařízení Diff real   Ne Ne Pásmo necitlivosti okolo žádané hodnoty TrackingSetpointTolerance real   Ne Ne Hranice přepnutí ve sledovacím módu pro žádanou hodnotu. V případě nulové hodnoty je sledování vypnuté. Využitelné pouze v paralelním módu. TrackingTolerance real   Ne Ne Hranice přepnutí ve sledovacím módu pro sledovanou hodnotu. Využitelné pouze v paralelním módu. ParallelMode bool   Ne Ne Určuje způsob řízení jednotlivých stupňů |Hodnota|Význam | |False |Poslední aktivní zařízení je řízeno procentuálně, ostatní aktivní jsou zapnuty na 100% | |True |Všechny aktivní zařízení jsou řízeny společně procentuálně (vhodné např. pro kondeznační kotle).| MinimalRunningCount usint 0..NumberOfStages Ne Ne Minimální počet aktivních zařízení. Využitelné pouze v paralelním módu. OnlyFirstStageControllable bool   Ne Ne Určuje, že pouze zařízení #1 má řiditelný výkon. Dochází tedy k přesměrování "necelých" požadavků na první vstup/výstup AllowFirstStageOnMinimum bool   Ne Ne Určuje, že pokud je povolený provoz, tak první stupeň jede vždy alespoň na minimální výkon FullPowerTolerance real   Ne Ne Hranice pro určení minimálního nebo maximálního výkonu. |Výstupy |Jméno |Datový typ |Význam| |Request1 |[[StageControlType_v2.0.htm|StageControlType]]|Sdružený požadavek na první zařízení | | |Request2 |[[StageControlType_v2.0.htm|StageControlType]]|Sdružený požadavek na první zařízení | | |Request3 |[[StageControlType_v2.0.htm|StageControlType]]|Sdružený požadavek na první zařízení | | |Request4 |[[StageControlType_v2.0.htm|StageControlType]]|Sdružený požadavek na první zařízení | | |ActualSetPoint |real |Aktuální žádaná hodnota regulované veličiny | | |ActualFirstStage |usint |Číslo aktualního prvního zařízení | | |ActualNumberOfActive |usint |Aktuální počet aktivních zařízení | | |TrackingCommand |bool |Povolení sledování pro externí regulátor | | |TrackingValue |real |Hodnota sledované veličiny pro externí regulátor| | |RequestedTotalPower |usint |Celkový požadovaný výkon kaskády | | |ActualTotalPower |usint |Aktuální výkon kaskády | | |IntegralValue |real |Aktuální hodnota integrálního kriteria | | |Failure |bool |Sdružená porucha | | |FailurePowerInsufficient|bool |Varování o nedostatečném výkonu | | |AlarmsStatus |[[AlarmsStatus.htm|AlarmsStatus]] |Sdružené rozhraní k alarmové funkci | | |Bloky|Jméno |Datový typ |Význam| |IC |[[IntegralCriterion.htm|Lib.Mervis.v1_0.IntegralCriterion]]|Integrální kritérium pro určování počtu aktivních stupňů| | ===== Podrobný popis funkce ===== Celý blok je postaven na základě bloku [[IntegralCriterion.htm|IntegralCriterion]] a proto je nutné začít pochopením tohoto bloku. Blok slouží pro určení optimálního počtu aktivních zařízení pro dosažení žádané hodnoty společného výstupu. Základní zapojení je vždy blok kaskádního regulátoru s odpovídajícím počtem výstupních bloků pro daná zařízení. Blok umožňuje řídit kaskádu i pouze s pomocí čidla společného výstupu, nicméně pro zkvalitnění regulace je vhodnější mít čidla i pro jednotlivá zařízení. Kaskádní regulátor určuje, která zařízení budou v provozu a řídí jejich výkon, výstupní bloky zajišťují předání těchto požadavků konkrétnímu zařízení (RequestX -> Demand) a ošetření provozních a poruchových stavů. Tyto stavy jsou následně předány zpět do kaskádního regulátoru (State -> StageX). Určování aktivních zařízení se děje na základě integrálních kriterií a na základě hlášení o stavu nejpozději přiřazeného zařízeni (konkrétně jeho aktuálního výkonu). Pro aktivaci dalšího zařízení musí být tedy splněny následující podmínky: * překročení limitu integrálního kritéria * naposledy aktivované zařízení musí hlásit aktuální výkon 100% Přidáním dalšího zařízení se změní požadované výkony pro jednotlivá zařízeni, všem kromě posledního se nastaví požadovaný výkon na 100%, u posledního se provádi regulace podle režimu řízení daného výstupního bloku. Pro deaktivaci platí podmínky opačné, pokud se zařízení deaktivuje, vypne se, přechází regulace na předchozí stupeň s tím, že začíná na 100% výkonu aby nedošlo ke skokové ztrátě dodávaného výkonu a tím k rozkmitání. {{:cs:mervis-ide:35-help:cascadecontroller_graph.png}} ==== Interní postup výpočtu ==== - Výpočet aktualní hodnoty žádané veličiny na základě //Setpoint// a //MinimalOutput// z jednotlivých zařízení, které jsou v následujících stavech * Start, Preheat, Run, MinRuntime, AfterCooling - Mapování/Přiřazení vstupů - Přiřazení výkonu jednotlivým zařízením do pracovních proměnných * Určení indexu posledního aktivního zařízení * Pro stavy Ready, Start, Preheat, MinRuntime, AfterCooling, NotRun se Enable nastavuje na true a RequestedPower na nulu * Pro stav Run se Enable nastavuje na true a RequestedPower dle režimu (buď 100 % nebo výtup PI) * Pro stav MinStop se Enable nastavuje na false a RequestedPower na nulu * Pro ostatní stavy je Enable roven false a RequestedPower nulový - Oprava mapování vstupů (předchozím krok mohlo dojít ke změne) - Korekce výstupu PI regulátoru (např. při zmenšení počtu aktivních zařízení je nutné přenastavit výstup na maximum) - Určení počtu aktivních zařízení * Výpočet ActualNumberOfActive * Při přidání zařízení v paralelním režimu se výstup PI upravuje na hodnotu 100 - 100 / Počet aktivních zařízení, jinak se výstup nuluje * Pokud existuje nějaké zaříení ve stavu MinStop nebo MinRuntime nedochází ke zvětšení resp. zmenšení počtu zařízení - Kontrola provozních hodin a posunutí prvního v pořadí - Výpočet nového akčního zásahu PI regulátoru - určení výkonu posledního zařízení v závislosti na typu řízení: * PowerCascadeOutput + PowerStageOutput - výstup PI regulátoru * StageCascadeOutput + StageStageOutput - fixně 100 % * Pokud je poslední zařízení v jiném stavu než Run, dojde k resetu PI regulátoru a nastavení výkonu na nulu - Zpracování alarmů - Nastavení výstupů