Rocnikovy projekt - PID regulacia teploty

Problematika ohladne regulácií (PI, PID), ovládania pohonov, odmeriavaní veličín, automatizácie PLC

Moderátori: Drakoush, Moderátori

romiadam
Ultimate člen
Ultimate člen
Príspevky: 4415
Dátum registrácie: 09 Apr 2008, 00:00
Bydlisko: Wicklow, Irsko
Vek: 47

Re: Rocnikovy projekt - PID regulacia teploty

Príspevok od používateľa romiadam » 20 Feb 2020, 22:30

Zdravim opat. Nedostal som sa k tomu ked som chcel, ale hlavne ze je tu tu teraz. Tak uz mam prve vysledky. :applause:

Poznamka:
1.Ten bezec pre PWM regulaciu ignorujte. Ten je aktivny len ked je manualna regulacia alebo On/Off regulacia aktivna
2. Ohrievany hlinikovy blok 3x5x1cm ofukujem z jednej strany (na opacnej je snimac teploty - ten sa neofukuje) malickym ventilatorom nech sa rychlejsie chladi a nech je ustalena teplota P regulatora mensia. Inak bu bola stale blizko zelanej hodnoty. Nevm ci je to dobry napad.
Preg.PNG
A mam hned otazky.

Pri danej konfiguracii PWM v PIC MCU pre 0% PWM je hodota 0 v registri pre PWM a pre 100% PWM je hodnta 283 v registri pre PWM.
Teplotu meriam s rozliseim 0,25°C, teda zelana´(50°C) - skutocna teplota 25°C = 25. Kedze rozlisenie teploty je 0,25, tak cislo v registi pre rozdiel teplot je 25 * 4 = 100.
Ak ja nastavim K=1 (na obr. je 0,1 ale do MCU posielam 1 - nasobim to 10) (najmensia hodnota, neviem este ako by som to nastavil na K=0,1 ???) potom Error * K = 100 * 1 =100.

A teraz neviem ci to robim dobre. Ja v takomto pripade nastavim PWM na 100 co je asi 40% PWM a kedze vykon je ani nie polovica tak sa mi to pomalicky zohrieva (vid obrazok vyssie) az po hodnotu 44°C za cas cca 3,5 minuty. Rozdiel tych 6 stupnoch je vlatne regulacna odchylka P regulacie.
Nepaci sa mi to ze sa to zohrieva dlho, no paci sa mi to ze pre 0,25°C priada jedno cislo z PWM rozsahu 1/283-ina. Takze okolo zelanej hodnoty to regulaor dokaze jemnucko regulovat PWM.

Ak ja nastavim K=5, delta t = 25 * 4 = 100 * 5 (K) = 500. Pokial je toto cislo vacsie ako 283, tak PWM nastavujem na 100%. Potom to klesa od 283 po 0 a zase stupne a ustali s to niekde. Tu sa mi paci ze ohrev je rychlejsi prudsi, no tym ze je to nasobene 5, pre 0,25°C mi teraz pripada uz cslo 5 teda PWM sa reguluje po 5. To je normalne? Uz sa to nereguluje jemnucko po jednej hodnote PWM ked sa to ustaly, ale PWM hodnota (register pre PWM) mi skace po 5. Dufam ze ma chapete co myslym. Cas ustalenia teploty je cca 2 minuty.
Preg2.PNG
Ak nastavim K = 10, tak je ohrev este rychlejsi, no presvihne nastavenu teplotu o par stupnov a potom mu dlho trva kym klesne a ustali sa. Regulacia PWM je po 10 okolo ustalenej hodnoty, a myslim ze to aj preto osciluje. Teplota osciluje od 49.00 - 49.75
Preg3.PNG

Mam to takto dobre? Mam to nechat tak? Alebo mam to urobit tak ze do napr. 80% zelanej hodnoty (aj je zelana teplota 100°C, tak do 80°C) mam zohrievat vykonom 100% PWM a zvysnych 20% rozdelit pre PWM 0-100% aby sa to jemnucko regulovalo okolo ustalenej hodnoty? Alebo to je blbost? Alebo uplne inak?
0
Prepáčte mi za diakritiku a preklepy - väčšinou píšem z mobilu a ENG klavesnice.
(výroky nemenovaného člena fóra:) ...základy elektrotechniky ovládam dokonale, tak napr. taký tyristor neviem ako presne funguje

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Rocnikovy projekt - PID regulacia teploty

Príspevok od používateľa peterple » 21 Feb 2020, 20:45

Zatiaľ tvoje zistenia sú v zhode s teóriou.
  1. P regulátor nikdy nevyreguluje na nulovú odchýlku
  2. Čím >K tým kmitavejší regulačný proces
  3. Ak K bude veľké (napr 1000000) tak sa z toho stane ON OFF dvojpolohový regulátor
Odpovede na otázky
teda PWM sa reguluje po 5. To je normalne?
áno je. Si uvedom že PID regulátor prišiel z analógového sveta. Ty to niekedy lepšie alebo horšie simuluješ diskrétnym spôsobom. Ak ti vadí to s tou teplotou tak si tam daj presnejšie meranie teploty (somozrejme že je to zbytočné). A napríklad to hrubé PWM ti nevadí? To tiež nie je spojité ale máš tam iba určitý počet diskrétnych skokov. Len nechápem prečo je maximum 283.
Mam to takto dobre? Mam to nechat tak?
To záleží od toho aké sú požiadavky na regulačný proces. Teda doba regulácie, trvalá regulačná odchýlka, maximálne preregulovanie.
Ak máš P regulátor tak veľa možností ako to nastaviť nemáš. Môžeš meniť iba K. No a ako si zistil tie veci ohľadom regulácie idú proti sebe. Takže sa hľadá optimum podľa reálnej situácie. Niekde chceš aby to reagovalo rýchle a preregulovanie ti nevadí. Sú však technológie kde by veľký prekmit bol neakceptovatelný.
aby sa to jemnucko regulovalo okolo ustalenej hodnoty?
To chceš vyrobiť čo? adaptívny P regulátor? Čo špekuluješ, P má nejaké vlastnosti a tie sa ti v plnej kráse ukázali. Tak si to vyhodnoť a skús dalšie typy regulátorov. Možno vyriešia tie tvoje veci čo sa ti nepáčia. Veď si naštuduj čo robí I zložka v regulačnom procese (dobrého aj zlého) a to isté aj D zložka.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

romiadam
Ultimate člen
Ultimate člen
Príspevky: 4415
Dátum registrácie: 09 Apr 2008, 00:00
Bydlisko: Wicklow, Irsko
Vek: 47

Re: Rocnikovy projekt - PID regulacia teploty

Príspevok od používateľa romiadam » 24 Feb 2020, 22:18

Len nechápem prečo je maximum 283
ani ja som nechapal, lebo najprv som tam tlacil len 255 a zistil som ze pri 255 PW nebol 100%. Tak som potom pozrel lepsie do datasheetu pre dany PIC 18F2550 a zistil som ze je na to vzorec a podla vzorca vyslo pre danu konfigurciu PWM rozlisenie 8.149 co je 292 (logicky analyzator mi ukazoval 100 uz pri 283 = preto 283 - neresil som to podrobne kde sa stratilo 9-bitov)
To chceš vyrobiť čo? adaptívny P regulátor? Čo špekuluješ,
Nespekulujem :) , len som mal predstavu (asi mylnu), ze to bude este stale jemne regulovat pri vyssich K, ale vidim ze sa to udeje len v analogovom svete, alebo by som musel velmi presne merat aj teplotu (este mam rezervu na 1bit = 0,0625°C) aj PWM mat vo vyssom rozliseni.

Tak to boli odpovede na tvoje "otazky". Diki za vysvetlenie. Medzitym som zvysil rozlisenie PWM z 9 na 10 bitov a uz je to lepsie. Tych 10 bitov je max pre dany MCU. Tiez som zvysil meranie teploty na 10 bitov comu zodpoveda 1 bit = 0.25°C. Uz je to lepsie.

Stale mi nie je jasne ako nastavit vykon kontrolera pre vyhrevne teleso (PWM duty cycle) na zaklade vypocitanej reg. odchylky. Preco? Lebo P regulator mi sice pekne funguje, ale nezodpoveda to teorii riadenia.

Urobil som taky pokus, ze som nastavi PWM na 5% (pre jednoduchost udavam zaokruhlene cisla) a teplota sa ustalila po asi 45 minut na 50;C. Cize som zmeral prechodovu charakteristiku pre teplotny skok 21°C -50°C = 29°C. Tau pre 63.2% ( (29*0,632) + 21= 39,32°C ) mi vyslo 700sekund. Takze prechodova funkcia mojho systemu by mala byt 1/(700s + 1). Ak pre tuto funkciu pouzijem P regulator s K=1, potom dostanem tu istu funkciu. A z toho vypocitam prechodovu funkciu pre uzavretu slucku (G2=1) (G1*G2)/ (1+(G1*G2)) tak dostanem 0.5/(350s +1). Ak na toto aplikujem skokovu zmenu 29°C, potom ustaleny stav by mal byt na teplote 29*(05/1)=14 => 14.5+21=35.5°C

Tak som K nastavil na 1, a spustil som to. System dosiahol teplotu 39.32°C (63.2%) za 278 sekund (malo to byt za 350sek) a teplota sa ustalila na 44°C (malo to byt na 35.5°C). A toto mi nesedi a neviem preco. A nakolko je to skolsky projekt, tak by som bol rad keby to sedelo (hoci aj ciastocne) a mohol som povedat ze teoria je totozna s realitou alebo naopak. Lene mne tu teoria nesedi s realitou, lebo v teorii nic nepisu (aspon v tej ktoru som ja studoval) ako nastavit vystupny vykon regulatora vzhladom na reg. odchylku. Mam tusenie ze PWM sa neako musi "nakalibrovat" na hodnotu reg. odchylky podla teorie, ale nie som si isty.

Poznamka: Kedze 1bit=0.25°C, Zelana teplota do MCU sa posiela uz vynasobena 4, teda 50°C =200. Regulacnu odchylku (50°C - 21°C = 200 - 84 = 116 som rovno poslal do registrov PWM (max 1024). Teda ako to vidno na grafe, na zaciatku PWM bol nastaveny len na 116/1024=11.32% a postupne to klesalo az po 200-176=24 =>24/1024=2.34%.
P_Ctrl.PNG
0
Prepáčte mi za diakritiku a preklepy - väčšinou píšem z mobilu a ENG klavesnice.
(výroky nemenovaného člena fóra:) ...základy elektrotechniky ovládam dokonale, tak napr. taký tyristor neviem ako presne funguje

peterple
Ultimate člen
Ultimate člen
Príspevky: 2328
Dátum registrácie: 25 Jún 2013, 21:06
Bydlisko: Krajné
Vek: 57
Kontaktovať používateľa:

Re: Rocnikovy projekt - PID regulacia teploty

Príspevok od používateľa peterple » 24 Feb 2020, 23:23

Fúha tak toto ťa trápi. Tak taký teoretický automatizér zas nie som. Podľa mňa je to spôsobené tým (ako to tu odvodil Pin) že závislosť PWM -- >U --> P nie je lineárna. No a tá teória platí pre lineárne spojité systémy. Takže ak by si si linearizoval ten tvoj akčný člen inverznou funkciou k tomu vzorcu tak by sa to priblížilo viacej. No a potom sú tu chyby od digitalizácie. Ale tam som nedošiel v teórii vôbec. Ono nás to v dobe pred revolúciou učil jeden zaslúžilý pedagóg a podľa toho to aj vyzeralo. Po 89 bol prvý ktorého za katedry vyhodili.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.

romiadam
Ultimate člen
Ultimate člen
Príspevky: 4415
Dátum registrácie: 09 Apr 2008, 00:00
Bydlisko: Wicklow, Irsko
Vek: 47

Re: Rocnikovy projekt - PID regulacia teploty

Príspevok od používateľa romiadam » 25 Feb 2020, 08:15

Nie ze by ma to trapilo, ale keby padla neaka taka otazka pocas prezentacie aby som mal o tom prehlad, cim je to sposobene.

A zaroven som chcel vediet ci nemam nieco zle. Ale to si mi uz napisal predtym ze je to OK. Dik.

Nevadi. Aj tak si mi uz znacne pomohol. Teraz je ten cas otravovat s tym mojho veduceho projektu. Nechcel som ho doteraz otravovat s kazdym problemom a nejasnostou. Ak mi odpovie (ak to bude vediet), tak to sem dam.
0
Prepáčte mi za diakritiku a preklepy - väčšinou píšem z mobilu a ENG klavesnice.
(výroky nemenovaného člena fóra:) ...základy elektrotechniky ovládam dokonale, tak napr. taký tyristor neviem ako presne funguje

romiadam
Ultimate člen
Ultimate člen
Príspevky: 4415
Dátum registrácie: 09 Apr 2008, 00:00
Bydlisko: Wicklow, Irsko
Vek: 47

Re: Rocnikovy projekt - PID regulacia teploty

Príspevok od používateľa romiadam » 01 Mar 2020, 12:39

Este doplnim do predosleho prispevku, ze preco riesim to aby vypocitana a skutocna prechodova charaktristika bola rovnaka (podobna) je to, ze by som tu prehodovu charakteristiku sytemu chcel hodit do matlabu (alebo ineho simulacneho programu) a tam simulovat regulaciu pre Kp, Ki a Kd (PD kontroler) a potom tie cisla pouzit pre moj regulator a potom to uz len jemnucko doladit. Myslim si ze v simulacnom programe simulacia bezi rychlo, takze nemusim cakat na prechodovu charakteristiku napr. 10 min a potom to dalsich 10 minut chladit a test opakovat.


Tak uz pre P regulator mam konecne prijatelne vysledky, take ake sa udavaju v teorii. Chcel som to dosiahnut kvoli tomu by bolo vidno ako jednotlive cleny regulatora ovlyvnuju regulaciu.
PID P_reg.PNG
Povodne na zaciatku projektu som mal PWM iba 8.3 bitovy (283), a teplotu snimal 9 bitovo (+ - 128°C, 9bit bolo znamienko, teda som pracoval s 8 bitmi). Ak zelanea teplota bola 80°C a okolita 20°C rozdiel bol 60°C a pre 9 bitovy prevod 1bit= 0.5°C, to bola hodnota v registri DS18B20 hodnota 120 (120/283=42% PWM).
A ked som nastavil K=1 tak, odozva systemu bole velmi tlmena.
Ked som nastavil K=2, tak tak to bolo uz lesie ale stale tlmene
Ked som nastavil K=3, tak tak to bolo kriticky tlmene
Ked som nastavil K=4, tak tak uz vznikali prekmity.

Teda nemal som velku skalu nastavovania K, kvoli tomu ze pre K=1 PWM bolo nastavene hned na 42%. Cely tento problem vyriesilo to, ze som zvysil rozlisenie PWM na 10bitov. Pri rovnakom rozdiele teplot 60°C (pri spusteni regulacie) hodnota teploty z DS18B20 bola 120 ale max hodnota PWM 1023 (120/1023=11.73) co je asi 5 x menej ako predtym. Toto sposobilo to, ze pre kriticky tlmeny system mi vyslo K omnoho vyssie okolo K=15. Tak som si mohol dovolit zvysit aj rozlisenie snimania teploty na 1bit=0.25°C. Teraz optimalne K pre P regulator je asi Kp=8. Keby som to chcel este zvysit, musel by som zvysit rozlisenie PWM, co mi uz moj MCU nedovoli (musel by som vymenit MCU za taky co ma 12bitovy PWM), alebo znizit rozlisenie teploty (co nechcem).


Toto tu uvadzam len pre informaciu pre tych co budu v buducnosti riesit PID regulator teploty:

Tiez to ze ako tie prechodove charakteristiky vyzeraju zavisi od viacerych faktorov:
1. kde je snimac teploty (ako rychlo sa teplo dostane od ohrevaca k snimacu)
2. objem ohrievaneho telesa u mna hlinikovy blok)
3. ci je to teleso chladene alebo nie (u mna ofukovane ventilatorom).
4. Velkost napatia PWM.
5. Skenovaci cyklus v MCU, ja mam momentalne 0.5 sek

Ak som mal snimac teploty velmi blizko pri ohrievavom telese, tak prekmity boli malicke (max 0.75°C), reakcia systemu velmi rychla.
Ak som mal malicky hlinikovy blok (obrazok na zaciatku tejto temy), tak sa ten blok rychlo ohrial a zaroven snimac bol velmi blizko ohrievacieho telesa
Ak ten hlinikovy blok nebol chladeny, tak ustalena teplota pre nizke K bola stale velmi blizko pri zelanej teplote 98% zelanej teploty. Akonahle sa zapol ofuk tak ustalena teplota spadle na 90%.
Spociatku som 24V ohrievacie teleso skusal napajat 12V. Teplota stupala pri 100% PWM znacne pomalsie ako pri 24V
Cim vacsi akenovaci cylkus, tym vacsie zvlnenie ustalenej teploty.
0
Prepáčte mi za diakritiku a preklepy - väčšinou píšem z mobilu a ENG klavesnice.
(výroky nemenovaného člena fóra:) ...základy elektrotechniky ovládam dokonale, tak napr. taký tyristor neviem ako presne funguje

Používateľov profilový obrázok
StefanST
Pokročilý člen
Pokročilý člen
Príspevky: 778
Dátum registrácie: 20 Feb 2012, 22:25
Bydlisko: Nové Zámky

Re: Rocnikovy projekt - PID regulacia teploty

Príspevok od používateľa StefanST » 01 Mar 2020, 14:17

romiadam napísal:... Teraz optimalne K pre P regulator je asi Kp=8. Keby som to chcel este zvysit, musel by som zvysit rozlisenie PWM, co mi uz moj MCU nedovoli (musel by som vymenit MCU za taky co ma 12bitovy PWM), alebo znizit rozlisenie teploty (co nechcem). ...
Nedal by sa použiť nejaký externý kontrolér/generátor PWM s rozlíšením 12bit?
Alebo nejaký jednoduchý a malý uC využiť na SW generovanie PWM, lebo tvoja regulovaná sústava je pomerne pomalá a netreba tam vysokú frekvenciu PWM.
Alebo získať 1-2 bity spínaním 1-2 rezistorov do série s vyhrievacim telesom.
0

romiadam
Ultimate člen
Ultimate člen
Príspevky: 4415
Dátum registrácie: 09 Apr 2008, 00:00
Bydlisko: Wicklow, Irsko
Vek: 47

Re: Rocnikovy projekt - PID regulacia teploty

Príspevok od používateľa romiadam » 01 Mar 2020, 15:13

Tak je to len 40W ohrievac, ochladzovanie je pomale tiez, lebo je to zatial len hlinikovy hranol o rozmeroch 1cm x 6cm x 3cm (skusim ho vymenit za chladic s rebrami a ten ofukovat, to by sa malo rychlejsie ochladit, ale asi budem potrebova vykonnejsi ohrievac, uvidim). Ak dokoncim (naprogramujem I a aj D regulaciu, a nebude to ono, mozno zvysim vykon ohrievacieho telesa, vymenim MCU za taky ktory ma 12 bit PWM a pouzijem rebrinovy chladic.

Ako som spiminal v predoslych prispevkoch, toto je volny projekt takze to moze ostat aj taketo pomale. Moja priorita je len to aby som prakticky odprezentoval ze pri P-regulacii je ustalena hodnota nizsia ako zelana a zavisi od ako intenzivne je ochladzovane (tam by som to prezentoval pri roznych otackach ventilatora), I regulaia v kombinacii s P-egulaciou odstrani tu odchylku ale vznikaju prekmity, a D regulacia v kombinacii P a I (PID) odstrani prekmity.

Ak toto dosiahnem tak to mi staci. Ale je to dobra poznamka.
0
Prepáčte mi za diakritiku a preklepy - väčšinou píšem z mobilu a ENG klavesnice.
(výroky nemenovaného člena fóra:) ...základy elektrotechniky ovládam dokonale, tak napr. taký tyristor neviem ako presne funguje

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok