Vytvoření regulátoru

   Hezký den. Rozhodl jsem naprogramovat PID kontrolér pro řízení vstupní teploty do podlahového topení na primárním rozdělovači (rozdělovač napájí další dva rozdělovače, které napájí již jednotlivé okruhy). Nejsem však schopen se svými znalostmi určit některé prvky programu.
 1. Bude pro výpočet regulační veličiny postačovat rozsah 16 bitů? Když samotný regulátor je ovládán PWM a počet kroků v kterých lze měnit šířku pulsu je 1024? Měření teploty je prováděno s přesností 12 bitů (4 bity jako desetinné číslo).
 2. Není zbytečně velký počet kroků tj. 1024 pro řízení regulačního prvku, respektive fyzicky termoventilu?
 3. Bude třeba regulační veličinu transformovat, když bych použil všude dostupný matematický předpis pro PID regulátor? u=Kp * E + Ki * Sum(E) + Kd * (y_n – y_n-1) Dotaz navazuje na předchozí dotaz, kdy se bude měnit šířka PWM pulsu v rozsahu 0 – 1024.
 4. Lze již v tomto kroku při programování stanovit hodnotu Kx koeficientů, když vím, že doba přeběhu regulačního prvku (termoventil) ze zavřeno do otevřeno je 4 min (tzn. Ze stavu otevřeno do zavřeno a naopak), doba zpoždění mezi změnou stavu třícestného ventilu (v případě, že změním stav ventilu ručně) a změnou výstupní teploty je 15 vteřin a znalosti, že při požadované výstupní teplotě vody 35 °C je třeba, aby hodnota PWM pro termoventil při ustáleném provozu je třeba nastavit hodnotu 820. Bude postačovat, aby při těchto parametrech se výpočet PID realizoval s frekvencí 1 až 0,25 Hz nebo je to zbytečně moc? Vzhledem k extrémní setrvačnosti podlahového topení nevadí, když bude docházet k překmitům v rozsahu 2 °C, když překmity nebudou trvat déle než 30 minut.
 5. Lze již teď říci, zda při požadavku řízení teploty vůči nejchladnější místnosti, je vhodné použít druhou regulační smyčku PID, která bude průběžně měnit požadovanou hodnotu vstupní teploty do rozdělovače (na základě např. znalosti venkovní teploty a požadované teplotní pohody), který rozvádí vodu do jednotlivých primárních okruhů? Tzn. v kotelně je primární rozdělovač, kterého se dotýkají dotazy č. 1 až 4, který napájí podružné rozvaděče, které napájí jednotlivé patra a na každém patře jednotlivé okruhy. Tzn., půjde o dvojitý PID regulátor. Nebo bude vhodné celý systém realizovat jinak?
   Vím, že se jedná o hodně detailní otázky, ale myslím, že by mnohým programátorům pomohlo znát odpovědi na některé z výše uvedených dotazů. Mohu slíbit, že v případě úspěšného naprogramování zašlu hotový program či aspoň vývojový diagram.

   Dobrý den, jako první bych se zmínil o tom, že podle mého není termopohon vhodný na kvalitní regulaci teploty (dopravní zpoždění regulace, stárnutí termopohonu, vliv teploty okolí, jiný čas pro otevření a pro uzavření, každý se chová jinak atd.). Spíše bych se přimlouval za jiný typ pohonu.
 Ad1) Toto by mělo dostačovat.
 Ad2+3) S udržením termoventilu PWM řízením na dané pozici mám špatné zkušenosti, proto nedokáži relevantně říci, jak se konkrétní typ bude chovat jak na stole, tak v reálném provozu.
 Ad4) Perioda výpočtu zásahu PID 1Hz je plně postačující.
 Ad5) Zde bych požadovanou teplotu topné vody upravoval vlivností rozdílu požadované a skutečné teploty * koeficient topné soustavy (pro začátek hodnota 2).
   Já osobně preferuji už vymyšlené řešení, protože nerad vymýšlím už vymyšlené a proto používám řídicí systémy, ale pokud to děláte jako koníček, tak případně rád pomohu, pokud budu moci. Jen upozorňuji na promyšlené vlastní topenářské zapojení, protože pokud je nevhodně vytvořený základ, tak nikdy s regulací nedocílíte kvalitního řešení. Hodně programátorů se soustředí na SW a diví se, že v reálu to nefunguje. Toto je většinou způsobeno zanedbáním technologické části projektu.
   S tím minimem informací co mám k dispozici, bych zadání řešil takto: Regulaci teploty topné vody bych nechal na kotli. Doplnil ho o ekvitermní regulaci a prostorovým regulátorem. Průtok jednotlivými topnými hady bych nastavil podle potřebných výkonů. Když bude kontinuální odběr tepla na nízké úrovni (žádné skokové změny), tak kotel pojede v optimálních podmínkách a v konečném důsledku to bude lepší než kotli neustále měnit podmínky pro provoz. Zrovna jsem o tom nedávno zveřejnil článek (http://valter.byl.cz/par-rad-jak-usetrit-za-vytapeni).

   Hezký den, moc děkuji za odpověď. Máte pravdu, že když je topenářský rozvod špatně navržen, nelze s regulací toho moc nadělat. Proto si dovoluji přiložit zjednodušený nákres toho, co chci vlastně regulovat. Topný systém
Prozatím do regulace kotle (automat na uhlí) nechci zasahovat a prakticky udržuje v akumulační nádrži teplotu okolo 62 °C v rozsahu +/- 3 °C.
V této fázi mi jde o dvojitou regulaci právě ventilů pod číslem 2.
   - Primární regulační smyčka by udržovala teplotu dle denního programu (teď ovládám ventil manuálně, tak aby teplota vody byla cca 35 °C), tak aby za čerpadlem byla požadovaná teplota vody (přičemž jsou dostupné informace i o změnách teploty uvnitř akumulační nádrže, teploty v místnosti kde je kotel).
   - Sekundární regulační smyčka by dle ekvitermy (tj. měření venkovní teploty a teploty v nejchladnější místnosti na 1 a 2 NP) měnila velikost hodnoty teploty, na kterou by první smyčka měla regulovat (tzn., aby upravovala hodnotu teploty dle denního režimu v nějakém rozsahu cca -5 až +10 °C).
Vše dělám jako koníček, ale mohu poskytnout údaje i pro jiné řešitele.
Poněvadž jde o podlahové topení, tak i tak, změna teploty na výstupu čerpadel se promítne na teplotě v místnostech v domě ne dříve než za 50 při náběhu systému, když podlahové topení je plně studené, a nemyslím si, že při běžném provozu to bude méně. Spíše jde o úsporu nákladů, kdy během noci a v nepřítomnosti nikoho v domě lze snižovat teplotu do rozdělovačů. Na druhou stranu, z mého hlediska, je cena pohonů třícestných ventilů přemrštěná, které používají mechanický princip, proto jsem volil termopohon. I tak jsou termopohony instalovány na podlahové rozdělovače nebo na hlavice radiátorů, a požadují se od nich stejné služby jako v mém případě.

   Dobrý den, je vidět, že to máte celkem dobře promyšlené a můžu říci, že jste jeden z mála. Jen bych upozornil na nějaké detaily.
Primární funkce trojcestného ventilu v kotlovém okruhu je udržování teploty vratné vody do kotle. Dodělání funkce, aby regulátor i udržoval konstantní teplotu v akumulační nádrži, je možné, ale určitě to bude chtít nějaký regulátor, kam bude moci tento složitější algoritmus naprogramovat (nevím o naprogramovaném výrobku, který to umí). Poté byste po natopení nádrže nastavil jen kotlový okruh, kotel by se natopil a vypnul. Muselo by tam též hlídat max. teplota kotle, aby při režimu jen kotlového okruhu a udržováním ohně nedošlo k přetopení. Poté by mohla teplota v nádrži stoupnout, pokud by nebyl odběr tepla.
   Původně byla vyvinuta termohlavice jako laciný prvek regulace teploty na radiátoru. Protože regulační prvek - vlnovec stárne a co kus to originál, tak ani na termohlavicích nejsou napsány °C, protože nelze docílit, aby to sedělo a už vůbec ne dlouhodobě. Termopohon je v podstatě termohlavice, kde je vlnovec ohříván odporem. Vývoj sice trochu pokročil, ale nedávno jsem měl některé termopohony rozebrané a pořád je to „hračka“. Já osobně bych se bál, že se vlnovec zkroutí a zasekne otevřený, protože nebyl odběr, tak akumulační nádrž bude trochu přetopená a ta horká voda mi vletí do podlahy a nadělá paseku.
   Kdybych si to realizoval doma a chtěl bych docílit rozumný poměr cena/výkon, tak bych to řešil takto: Do kotlového okruhu bych nešahal, jen možná bych zvedl teplotu kotle, aby méně dehtoval. Za akumulační nádrž bych dal trojcestný ventil s čerpadlem, které by honilo vodu do rozdělovačů. Servopohon by byl řízený podle venkovní teploty a místnosti co mě nejvíce zajímá např. obývací pokoj (časový program, požadovaná teploty). Tímto by byla vytvořena předregulace topné vody pro podlahu. V podlahových rozdělovačích bych zrušil čerpadla. Zachoval bych tam ruční hlavici jako sichr, ale vytočil bych jí na cca 40°C. Průtoky jednotlivými hady bych nastavil, aby topili, jak potřebuji. Pokud bych chtěl nějaké okruhy vypínat, tak bych osadil termopohony, ale už bych je jen otvíral/zavíral podle potřeby.

Hezký den, ono tak jak jsem již poslal obrázek, je již uděláno. Mé vlastní poznatky:
 1. Řídící jednotky kotle, primárně vůbec nemyslí, že by byla mezi kotlem a domem akumulační nádrž, což se promítá do vyšších nákladů (možnost vypínání kotle, chytré řešení ovládání zapínání kotlového čerpadla). Tzn., že mě čeká úplné předělání řídící jednotky. Až sledováním provozu kotle, jsem zjistil, že kolem provozu jednotky se jen dělá humbuk, a je to prach obyčejný časovač, šlo by to udělat již před 30 lety s obyčejnou 555 doplněnou vypínáním dle teploty.
 2. Přesně jak výrobce požaduje, je do kotle zpět pumpována voda o teplotě 55 °C, což mi zajišťuje automatický třícestný termostatický ventil (ESBE VTC 511 / 55°C.), ten pracuje spolehlivě a nepotřebuje žádné řízení. Zde však přes mé úvahy, a výpočty, jsem měl zvolit jen potrubí většího průměru, což teď znamená, že čerpadlo musí jet v režimu větší tlakové ztráty cca 5m. Kdybych zvolil větší průměr potrubí, tak by tlaková ztráta byla nižší a nižší spotřeba el. energie na čerpadle.
 3. I přes výpočty tlakových ztrát topných hadů, jsem zjistil, že při teplotě do -12 °C, zcela postačuje provozovat čerpadla na tlakovou ztrátu do 3 m a stačí regulovat jen teplotu vstupní vody v rozsahu 32 až 37 °C. Až při větších mrazech, je třeba zvětšit průtok vody jednotlivými hady ale při zachování stejné teploty vody (kdybych to věděl, dalo se uspořit na ceně čerpadel). Což jednoznačně ukazuje, že spočítané tepelné ztráty domu jsou menší, než uvedl projektant, a to ještě není dům plně zateplen, jak bych si představoval.
 4. To že mám dva rozdělovače, každý na jednom patře je více jak dobré, neboť na jednotlivých patrech se liší nejen počet okruhů ale i průměrné délky hadů, rozteče hadů, tzn. na každém patře jsou zcela jiné tlakové ztráty. Proto musím mít dvě čerpadla, každé na jeden rozdělovač. Rovněž, každý rozdělovač kryje jinou tepelnou ztrátu, což se projevuje tím, že jeden z rozdělovačů můžu provozovat o 2 až 3 nižší vstupní teplotou.
 5. A zde, na rovinu řeknu, že jsem do celého systému nemínil investovat dalších 4 až8 tisíc navíc, jen abych tam měl třícestné ventily s mechanickým pohonem. Nakonec je tam třícestný ventil, dostatečným KVS, který je šoupátkový, a potřebuje jen 110 N pro ovládání. Takže proto je tam termopohon. Prozatím to reguluji ručně, a poněvadž kotel udržuje prakticky stálou teplotu v akumulační nádrž tak to není velký problém. A právě zde chci nasadit tu regulaci, o které píšu a dotazoval jsem se na podrobnosti. Regulaci by řídil procesor Atmel, vše by bylo naprogramováno jen ve strojovém kódu, neboť tak mám větší kontrolu nad registry procesoru a co kdy a jak dělá. A např. během časové smyčky, v které se čeká na měření teploty, mohu třeba spustit výpočet regulační smyčky, jen se musím vměstnat do určitého počtu strojových instrukcí, což bych ve vyšším jazyku nemohl vůbec realizovat. Ono vůbec, procesor stále na něco čeká, takže místo čekání bude aspoň něco počítat. Na rovinu, programování, kde se musí čekat na časové odezvy, a čekání generovat instrukcí NOP, to je doslova brutální zvrhlost, též by výrobci procesorů mohli vyjít vstříc programátorům a řešit to lepší výbavou na úrovní instrukcí a časovačů, přerušení a řízením priority přerušení, tzn. optimální by bylo, kdyby v procesoru mohly virtuálně běžet např. dva procesy, a vždy když v jednom procesu se čeká, tak by druhý mohl pracovat. Uvidím, zda by to bylo možno realizovat i v Atmelu a to pokud možno s min. požadavky na přepínání mezi procesy a chytrým generováním časových smyček.

   Dobrý den, ano máte pravdu, že kotlové automatiky kotlů na tuhá paliva jsou dosti primitivní (mám ho doma). Správným nastavením lze docílit značných úspor, výměnou za inteligentnější regulaci ještě větších :-). Podle velikosti vaší akumulační nádrže by stálo za zvážení, jestli kotel nenahnat na 80°C, kdy má nejlepší účinnost a natopit nádrž a následně odstavit kotel. Hlavně v jarních a podzimních měsících kdy je potřeba tepla minimální, to bude efektivnější.
   Když píšete, že se pohybujete v malém regulačním rozsahu teplot, tak mě napadá další hledisko. Protože teplo je dáno rozdílem teplot a průtokem, tak jestli nenechat teplotu do rozdělovačů konstantní a řídit otáčky čerpadla tj. průtok. Záleží, co tam máte za čerpadla, jestli by šli řídit PWM regulací.
   Myslím si, že až moc věříte termopohonům. Jestli to budete realizovat, tak mi dejte vědět, jestli se vám to podařilo rozumně rozchodit. Následně tak za 2 roky, jak jste spokojen a jestli termopohony ještě vůbec regulují.
   Programovat ve strojovém kódu je samozřejmě nejlepší, ale je málo programátorů, kteří to zvládají a zároveň se dokáží obstojně poprat s technologií zařízení. Protože dnešní programátoři jsou „klik-aři“, tak většina programů na bázi vyšších programátorských jazyků se zaměřuji na ovládání myší a hezké uživatelské prostředí a funkčnost jde trochu stranou, což není správně, ale je to tak.

Odesílatel: r@seznam.cz