Fórum témák
» Több friss téma |
Fórum » PIC PID library
Hali!
Elkeszült PIC-re a PID szabályozo algoritmust megvalosito könyvtaram elso verzioja: PIC_PID_LIBRARY Sok sikert a hasznalathoz!
Király
Csak a sok kommenttől nem látom a kódot.
Kicsit valtoztattam rajta:
- Be lehet allitani, hogy milyen idonkent hivodik meg a fuggveny. - Kulon PID szabalyzo kerult bele, nem kell a felhasznalonak sajat magnak kissakoznia a hasznalatat - Peldalkalmazas kerult bele - GCC-vel fordithato, makefile. Igy PC-n is ki lehet probalni. Kommentek meg mindig hianyoznak, de majd be lesznek potolva.
Roviden: A PID az egy analog szabalyozo elem. Egyszerubb dolgok szabalyozasara lehet hasznalni, pl: homerseklet, pozicio, vizszint stb...
Hosszan: A lenyege az hogy a szabalyozoban harom fele tag van: P: aranyos tag D: differencialo tag (jelvaltozasra erzekeny) I: integralo tag (bemeneti jelet hozzadja az aktualis kimenethez) P tag nagyajbol egy alap szabalyozo. Ez altalaban valamilyen fix hibaval tudja beallitani a kivant erteket. D tag a valtozasokat sietteti, tehat ha valtozik a kivant ertek akkor jol megrugja szabalyozando jellemzot es gyorsitja annak beallasat a kivant ertekre. Hatranya hogy a zajt is erositi. I tag "emlekszik", igy egy ido utan egyre jobban rugdossa a szabalyozando jellemzot, hogy az bealljon a kivant ertekre. Pl ha egy tartajbol folyik ki a viz picit, akkor ez egy ido utan annyit tolt bele alapbol amennyi kifolyik. A harom tag megfelelo beallitasaval elerheto, hogy a szabalyozni kivant jellemzo bealljon a kivant ertekre. Nagyjabol ennyi.
Hali!
Library témában a fórumban csak téged dobott ki a gép. ASM-ben csinálom a dolgaimat, és van egy kis formai gondom, MpLAB-ban. Unom és gondolom nem praktikus hogy a különböző moduljaim include file-ként futnak. Kellene help hogy hogy kell Library-ként gyártani a projec-t et.... Ha esetleg van ilyen tapasztalatod akkor lécci...
Hali!
ASM-ben nem dolgoztam sokat MPLAB alatt (mas alatt sem). Amikor dolgom volt modulrendszeru ASM programmal ott includal volt megvalositva az osszefuzes. De hogy ezen felul milyen szokasok vannak meg arrol fogalmam sincs. Gondolom a memoria foglalas sem lehet praktikus, ha kezzel kell atirni egy masik fajl ahhoz hogy a libraryd mukodjon.
El tudnád magyarázni ennek a lényegét nekem, még érthetőbben ?
Pl egy alap szabályzáshoz képest, ami így néz ki: megnézzük hogy kisebb-e az érték a kelleténél, ha igen, akkor a kimenő jel=kimenő jel+1; Ha meg nagyobb akkor meg kivonunk belőle egyet. Ha egyenlő, akkor meg nem bántjuk. Majd kezdjuk előröl az ellenőrzést. Nah, ehhez képest hogy néz ki a proporcionális ? És ha azt el tudod magyarázni, akkor léphetnénk tovább a PID felé.
Azt hiszem kicsit nehéz lesz! Nem tudom mennyire akarod megérteni, de főiskolán ez 2évnyi tananyag!
A proporcionális tag úgy néz ki, hogy a kimenő (beavatkozó) jelet nem egységnyi lépésekben növeljük, hanem arányos a hibajellel, azaz az előírt és a tényleges érték különbségével.
A PID szabályozóban a hibajel időbeli változását is figyelembe vesszük, és a proporcionális tag mellett van egy diferenciáló és egy integráló tag is. Bővebben: Link
Ha nem bánjátok, én is bedobnék a közösbe egy nagyon szuper és közérthető módon írt, magyarázatokkal teli linket: LINK
Az oldal fejlécében az egyes fejezetekre rá lehet kattintani, és így elolvasni őket! Szerintem szuper tananyag én jópárszor támaszkodtam már rá főiskolai féléveim alatt! Sőt, az oldal hierarchiájában feljebb is lehet lépni néhány szintet, és így más tantárgyak online anyagai is hozzáférhetőek!
Ah, szóval ha jól olvasom Norberto magyar linkjét, meg a te magyarázatodat, akkor ha 50% a szabályzó jel, és a kimenet is 50%, majd a kimenet hirtelen lecsökken 40% -ra, akkor a szabályzó jel nem 60% ra fog felugrani, hanem 70%-ra, ha a P = 2. Na de így túllövünk a célon, nem ? És a következő ellenőrzési ciklusban meg mivel már túl magas lett a kimeneti jel, akkor meg lecsökkentjük. Nem fog ez így begerjedni ? Vagy ez a 2-es érték a P-nek, csak egy hülye példa ?
Belengés biztosan lesz (lásd a korábban belinkelt anyag ábráit). A begerjedés viszont az erősítési tényezőn kívül a fázistolástól is függ, azt meg a konkrét rendszer ismerete nélkül nehéz volna megbecsülni.
Egyébként én csak egyszer kényszerültem rá, hogy (analóg) PID szabályozót építsek. Olyan lassan reagált a folyamat a szabályozójelre, hogy a megfelelő időállandójú differenciáló tag nélkül nem lehetett elkerülni a begerjedést. A méretezést Tietze, Schenk: Analóg és digitális áramkörök c. könyv alapján végeztem.
De igen előfordulhat, hogy begerjed! Akkor rossz a szabályzásod, ilyenkor változtatni kell szabályzón!
Amit linkeltem képet, az a fent linkelt jegyzetből van kivágva! A szabályozott jellemzőnk tranziens állapotbeli 3 lehetséges beállási formáját mutatja! Azt, hogy melyiket választod azt maga az alkalmazás helye és a lehetőségek adják meg. A 4 ami nincs a képen amikor begerjed, csak ugye akkor már nem beszélünk szabályzásról inkább rezgőkörről.
Mire érted azt pontosan, hogy belengés biztosan lesz?
Csupán 1 esetben van tényleges belengés (piros), max 2 esetben, ha az egyszeri túllövést annak vesszük, bár az nem lengés (kék), viszont a szürke esetben egyáltalán se lengés, se túllövés. Megjegyzem ellenben nagyon lassú az a fajta szabályzás.
Mire érted azt pontosan, hogy belengés biztosan lesz?
Emlékeztetőül: a proporcionális szabályozóról beszéltünk, és az általam ajánlott linken levő ábrán úgy láttam, hogy mindig van belengés: Bővebben: Link De ha másképp tudod, akkor hagyom magam meggyőzni. Az viszont tanulságos volna, ha megértenénk, hogy mi a belengés (vagy túllövés) kiküszöbölésének a feltétele.
Erdemes tisztazni ket fogalmat:
Stabilitas: Itt arrol van szo, hogy adott kor (szabalyzo+szakasz+visszacsatolas) el tud-e érni egy stabil állapotot vagy biztosan lengeni fog. Létezik olyan szabályzási kör ami biztosan stabil (strukturálisan stabil; akarhogy parameterezem mindig beall valami ertekre), létezik olyan amelyik paraméterezéstől függően stabil és létezik olyan ami biztosan instabil (strukturálisan instabil). Erre vannak modszerek, hogy hogyan lehet megallapitani. Pontossag: A szabalyozokor pontossaga fugg a kovetendo alapjeltol (fix, valtozo) illetve fugg a szabalyozasi korben talalhato alaptagoktol. Leteznek modszerek amivel ki lehet szamolni a ponstossagot. Altalaban 3 fele minosegi osztalyba lehet sorolni a pontossagot: 0, K, vegtelen. 0 az abszolut pontos, K az ami valamilyen fix ertekkel ter el, illetve a vegtelen amikor a szabalyozott jellemzo soha nem eri el az alaperteket. Ezt persze akkor "merik" amikor a szabalyozasi korben lecsengtek a valtozasok. Pl be lehet latni hogy egy PT1-es hotechnikai szakasz szabalyozasa P taggal K lesz, mig PI taggal szabalyozva 0. Az hogy a K menny pontosan az megint szamithato. A kovetelmenyektol fuggoen lehet donteni hogy eleg egy P tag mert a K < Kmegengedett (pl 5fok, de 20fok ingadozas megengedheto), vagy nem. Ekkor viszont kerdes, hogy I tagot hogyan parameterezzem. I tag kiszedi a hibat de tullovest okozhat. Itt megint felmerul hogy meg van-e engedve a tulloves vagy sem (pl lehet hogy 180foknal begyullad az a valami de nekem pont 179kellene).>
PID szabalyzo eseten PT1 tag eseten a P tag novelese elvileg noveli a tullovest es lengeszamot (abran ez lathato) illetve csokkenti az allandosult allapotban a hibat. Ez nem latszik mert I tag is van es az teljesen lecsokkenti.
Megfelelo PID parameterezessel lehet aperiodikus a beallas. Pl D tag szinte nullan, I tag szinten es megfelelo alacson P tag aperiodikussa teszi.
Automatizálási szempontból a túllendülés kiküszöbölésének a feltétele analóg szabályozási körökben legalább 65 fok fázistartalék, mintavételes rendszereknél 80-90 fok. A szabályozási kör Bode vagy Nyquist diagramjában könnyedén megoldható az ilyen feladat. A nehézsége ott van, hogy szükség van a kör elemeinek differenciálegyenleteire vagy azok laplace transzformáltjaira. Elektronikai körökben viszonylag egyszerű a a laplace-os felírás:
kapacitás: Xc=1/j omega*C = 1/sC induktivitás: Xl=j omega*L = sL ellenállás: konstans Ezeket az adott körnek megfelelően összegezve már felrajzolható a Bode diagram és kompenzálható a kör adott túllendülésre. Bonca
Üdv !
Én próbálkozok ezzel a libraryval, de mint minden pid szabályzót elég nehéz belőni. Én hűtésre (ventillátoros hűtés) szeretném használni, eddig nem volt időm erre, de most van és elég jól el lehet vele kísérletezgetni. Van egy hőérzékelőm, amit jobb hijján rátettem az aramkört tápláló stab ic-re, ill. a szabályzó kimenetén van egy Ventillátor, ami hűti a stab ic-t (pwm fordulat szabályzással). Szóv al a lényeg, hogy elég nehéz volt belőni a cuccot, de most jó. Hogy lehetne megoldani egy önhangolást, hiába olvastam rengeteget, nem nagyon értem az autotune lényegét. Gondolom ez a Ziegler Nichols féle megoldás lenne a jó. Itt ha jól értelmezem nem szabályoz csak kapcsolgat (mint egy termosztát) és ebből megállapítva a pid paramétereit átkapcsol szabályzásra. Az lenne a kérdésem, hogy milyen paramétereket kell ilyenkor figyelembe venni? A kapcsolások között eltelt időt, vagy mit, és ebből hogy lesz PID érték? A kóddal kapcsolatban pedig az lenne a kérdésem, hogy mit jelentenek a következő függvény paraméterei? code=c]extern void setParameters(double Ap, double Ad, double Td, double Ai, double Ti); én így gondolom: Ap=P Ad=D Ai=I Td= nem tudom Ti = nem tudom Segítségeteket előre is köszönöm !
Én úgy valószínűsítem az elnevezéseket, hogy:
Ap=P jellegű tag átviteli tényezője Ad=D jellegű tag átviteli tényezője Ai=I jellegű tag átviteli tényezője Td= differenciálási idő Ti = integrálási idő Ezek alapján a PID szabályozó 3 különállóan beállítható elemből/egységből van összerakva, egy arányos tagból, amihez semmi más nem tartozik, csak egy erősítés/csillapítás érték, van egy integráló tag, aminek külön beállítható az átviteli tényezője és külön az integrálási ideje, és végül van egy differenciáló tag, s ennek is egy átviteli tényezője és egy differenciálási ideje.
De az időnek mi értelme van, akkor az I és D tagot kissebre veszem és akkor elnyúlik a történet.
Viszont ez az autotune magas nekem.
Találtam egy leírást
De sajos ez is hivatkozik valami táblázatra, ami viszont nincs benne. Ill, mit jelent, hogy a rendszert kritikus állapotig viszi ? Esetemben az a pont, amikor a venti már nem tudja jobban hűteni a stab-ic-t ? Ez viszont függ a környezeti hőmérséklettől.
A kritikus pont nem az, amit ha túllépsz, akkor már lengésekkel fog reagálni a változásra a rendszer?
Dehát elsőnek a P taggal kell mahinálni, az meg ugye csak lengésekkel tud beállni.
Nemértem, mostmár tudom, hogy miért kell ezt 2 évig tanulni . Nembaj, nem adom fel.
De. Azt jelenti, amit potyo is írt.
Pont ez a lényege a Ziegler Nichols féle módszernek. Belengeti a szabályozást, szóval kritikus pontig tornázza fel az értékeket, és ha sikerült megtalálni ezt a pontot, akkor vissza lehet számolni belőle az optimális paramétereket az adott szakaszra vonatkoztatva. Mert ugye a lengés amplitúdója, frekvenciája a szakasz tulajdonságaitól függ és minden külön esetben, feladatnál egyedi, a szabályozandó egységre jellemző.
Nekem is volt egy fél éves tantárgyam erről az egyetemen, amit ott tanultunk, az világos is volt, de hogy az hogyan kerül át a gyakorlatba, arról fogalmam sincs...
Ok.
Tehát elkezdem tornázni a P tagot, ha jól vettem ki a leírásból akkor addig, amíg nem állandósul a lengés, tehát ismétlődő az amplitúdó, és a lengési periódus ekkor elértem a kritikus pontot? Bocs, hogy enyit értetlenkedek, de sajna én erről nem tanultam, pedig nagyon érdekel. Ja a periódust azt milyen egységben kell mérni? s, ms ? Idézet: „Tehát elkezdem tornázni a P tagot, ha jól vettem ki a leírásból akkor addig, amíg nem állandósul a lengés, tehát ismétlődő az amplitúdó, és a lengési periódus ekkor elértem a kritikus pontot?” A leírásokat még nem olvastam át, mármint amik olvashatóak 1-2 oldal tartományban. Viszont elméletileg így kellene működnie, igen. Idézet: „a periódust azt milyen egységben kell mérni? s, ms ?” Hivatalosan s, azaz másodperc. Kivéve, ha nincs más irányú javaslat az adott forrásban.
Valahol itt böngészés közben azt olvastam, hogy ez a Ziegler Nichols féle módszer elég elavult, mert akkor használták, amikor még nem nagyon voltak ilyen kapacitásu uC-k, mint ma.
És közben ráakadtam egy ún. Fuzzy logic szerű dologra, nem tudom ez mi, de ez is valami PID hez hasonló dolog lehet? A PID re visszatérve az amplitúdóból és periódus időből, hogy lesz meg a 3 tag (P I D) ? |
Bejelentkezés
Hirdetés |