Törölt nick Creative Commons License 2015.01.06 0 0 541

Bár kicsit megkésve reagálva a PID szabályzásra.

 

Lehet nagyon rosszul gondolom, amit most a PID-ről írni fogok Arduino kapcsán, max majd megköveztek. :-)

 

A PID nagyon sok területen elterjedt a szabályzástechnika világában, a hőmérséklet szabályzón át a motorvezérlésekig., mindenhol alkalmazzák. Ez tulajdonképpen egy algoritmus, ami három fő elemből épül fel. A P mint arányos tag, az I mint Integráló Tag, és D mind deriváló, differenciáló tag. És ehhez jönnek a visszacsatolásban használt és alkalmazott tagok, melyek szintén a fenti elemek bármelyike vagy azok kombinációja lehet.

 

A matematikai és automatikai háttere nem egy egyszerű dolog, ahhoz, hogy valaki jó PID szabályzót tudjon készíteni, ahhoz az elméleti hátteret ismerni kell (szabályzási körök, azok modellezése, matematikai leírások, stb). Ha valaki enélkül csinál egy PID szabályzást, abból nagyon nagy katyvasz tud lenni, és nem fogja érteni miért úgy és akként működik a szerkezet, ahogy. Egyetemen is komoly matematikai alapokra építve minimum fél éves tantárgy a PID szabályzás működése, algoritmusának megértése és megtanulása.

 

Szóval röviden és tömören: nem olyan egyszerű feladat mint látszik elsőre. A gyári PID szabályzókba az algoritmusokat rendszerint magas szintű mérnökök esetenként matematikusok írják.

 

A meglátásom elsőre: az Arduino keretrendszer kevés ahhoz, hogy ilyet megcsináljanak benne. Vagy csak utánzata lesz, és valami pid-szerűség jön ki belőle. Ahhoz mélyebb (matematikai és számítási)  műveletekre van szükség, mint amit Az Arduino keretrendszere meg tud valósítani, mindehez egy regiszterszintű programkezelés is párosul(hat). Vagy esetleg még azt tudom elképzelni, hogy megcsinálják mélyebb szinten, és valahogy "átkonvertálják" Arduino rendszerbe. Bár ennek meg az értelme kérdéses.

 

Fontos része egy jó PID szabályzó megvalósításához a szimulátor rész, mert így virtuálisan állítva a paramétereken, bemeneteken lehet látni a reakcióját az adott eszköznek, programnak, hogy úgy és akként reagál mint ahogy elterveztük szeretnék. Ilyen lehetőséget az Arduino keretrendszer nem tartalmaz.

 

Ha pl egy lakásfűtést szeretnénk PID jellegű szabályzással megoldani, ott ráadásul az un. időállandók is nagyon nagyok (pl hőmérséklet-változás percek aakár órák alatt jön létre). Ezért a valóságban viszonylagosan nehéz és időigényes mérni/szimulálni őket. Viszont ha nem optimalizálunk egy PID szabályzásnál akár több kárt okozhatunk, mint amennyi hasznot hoz. Mit értek ezalatt a gyakorlatban?

 

Pl. PID hőmérséklet szabályzóval akarjuk elérni, hogy 20 C legyen egy lakásban. A cél mondjuk az energiatakarékosság, minél kevesebb energiát használjunk el, hogy ez létrejöjjön. Ehhez mondjuk mérjük a szoba hőmérsékletét, és próbáljuk kapcsolgatni a kazánt, puffert akármit a lehető legkevesebb és legideálisabb módon a legkisebb energiafelhasználás érdekében.

 

Mi van akkor, ha nem jól lövünk be egy PID-es rendszert, vagy egyszerűen csak rossz az algoritmus? Pár eset: túllengések (túlfűtés), belengések (túl fűtés, majd alacsony hőmérséklet, visszafűtés magasra, stb valamilyen lecsengéssel), legrosszabb esetben gerjedés is könnyen lehet belőle. Azaz gyakorlatilag akár jóval nagyobb energiafelhasználás is lehetséges, mint egy sima tekerős termosztáttal.

 

Kicsit még továbbmegyek: a jó PID szabályzó ráadásul öntanuló is!Hogy működik ez?

 

Mondjuk bekapcsol, és az időállandókat elkezdi figyelni, mérni. A bekapcsolás után nézi mennyi idő alatt mekkora hőmérséklet emelkedés történik mindez milyen meredekséggel, és figyeli mellett mondjuk a külső hőmérsékletet is, mert nem mindegy hogy kint +5 fok van, vagy -10. Más lesz ez az idő.

 

Ezeket az értékek különféle esetekben és esetekhez mind mind eltárolja (táblázatos formában beírja az értékeket), és behelyezi egy képletrendszerbe (az aktuális külső állapotnak megfelelő értékeket), amit a PID szabályzás modellje alapján készítenek modell és programszinten.

 

És akkor pl lehet megspékelni ezt egy olyan variánssal, hogy az előremenő keverőszelepet is tekergeti a paramétereknek megfelelően, és ezzel állítva az adott körülmények között i leginkább legideálisabb előremenő vízhőfokot.

 

Azaz van egy táblázatunk, amiben szerepelnek az alábbi adatok a fenti példa esetben: belső hőmérséklet, külső hőmérséklet, előremenő hőmérséklet Emellé még számos dolgot be lehet rakni, különféle időállandókat, stb

 

És van egy komoly egyenletünk, amit meg kell alkotni PID elven, amibe ezeket az értékeket írjuk be, mindig az adott megfelelő körülményeknek megfelelően. Azaz mindig az adott állapotban csinálunk egy legideálisabb munkapontot (adott paraméterek) a munkaponti görbén (egyenlet).

 

Ráadásul öntanuló verzióban ezen elemek a táblázatban mindig változnak, ezért öntanuló, mindig újra méri is felülírja őket saját maga. Valamilyen alapértékről elindulunk amikor berakják egy adott házba (alapbeállítások), majd pl pár hét alatt feltöltődik a táblázat valós értékekkel.  Sőt ezt a szabályzó élete végéig folyamatosan műveli, mindig közelítve és közelítve a legideálisabb értékekhez.

 

A PID-es lakás fűtésszabályzók nagyon leegyszerűsítve a fenti elvek mentén dolgoznak, vagy azokat használják. ÉSsfeltétlen fontos az öntanulóág (gyakorlatilag saját magát felparaméterezi idővel), hiszen nincs két egyforma energetikai szempontból megegyező ház, mindig az adott ház hőtechnikai paraméteréhez kell igazodnia a szabályzónak. Jó PID szabályzással pl megoldható, hogy nem akkor kapcsol be egy termosztát, amikor már kihűlt a lakás mondjuk fél fokot, hanem előre tudja mikor fog kihűlni az adott körülmények között, és nem vissza fűti az elveszett energiát, hanem tartja mindig azon a szinten, ahogy kell. és ez igen komoly energiamegtakarításhoz tud vezetni.

 

Bocsánat ha nagyon hosszú voltam, de nem tudom mennyire ismered a PID szabályzás alapjait. lehet felesleges volt elírnom az egészet, és elnézést érte.

 

Egy nagyon leegyszerűsített és összefoglalt téma PID téren:

http://www.eet.bme.hu/~nagyg/elektronika/A%20digitalis%20PID%20szabalyozo.pdf

Előzmény: Prof (485)