Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

PID regulacija proracun

[es] :: Elektronika :: Mikrokontroleri :: PID regulacija proracun

Strane: 1 2

[ Pregleda: 14188 | Odgovora: 21 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

salas00

Član broj: 177239
Poruke: 68
*.rcub.bg.ac.rs.



Profil

icon PID regulacija proracun14.09.2009. u 20:32 - pre 176 meseci
Pozdrav svima, problem je sledeci.
Pomocu mikrokontrolera pravim termo kontroler koji ce na osnovi izmerene temperature kontrolisati grejace(trijacima) i odrzavati temperaturu vazduha u tunelu konstantnom,
kako sam ja kao i vecina elektronicara uglavnom odsustvovao sa predavanja iz automatike, a istu sam jedva polozi sa 6 a to je jos bilo pre nekoliko godina, slaba vajda da je nesto ostalo u glavi!!!! Secam se ja neceg ali bi mi trebalo jedno 10 dana da prekopam po staroj literaturi pa da se podsetim sta se sve tu radi, a toliko vremena nemam...
E sada ono sto sam ja uspeo da premerim je to da grejaci cija je snaga 1kW(220) pri snazi od 80% (bio je slabiji napon oko 190 kada sam merio) imaju sledecu temperaturnu karakteristiku u zavisnosti od vremena:

pocetna temperatura je bila 17 stepeni. do temperature od 100 stepeni su zagrejali za 16min, do 150 za 37min a do 170 stepeni za 45min. vreme kada je temperatura vidno pocela da se menja je bilo posle 1-1.5 min.

e sada bi ja zamolio nekoga da mi izracuna (simulira u matlabu ili sl) j-nu sa PID regulacijom po kojoj ja treba da kontrolisem ukljucenost grejaca u odredjenom trenutku u zavisnosti od vremena i izmerene temperature.

Znam da nesto bese oblika m[k+1]=Kp*(1+(1/Ti)*(suma(e[k])) + Td*(e[k]-e[k-1])) (m[k+1] mi je valjda duty ratio za sledeci odbirak, e[k] temperatura greske u sadasnjeg odbirka, e[k-1] temperatura greske proslog odbirka a Kp, Ti, Td proporcionalne, integralne i diferencijalne konstante)

E sada kako se podesavaju ovi parametri boga pitaj...a koliko vreme odabiranja da uzmem za ovaj moj sistem, kako da racunam ovo suma(e[k]) kada mi k tezi beskonacno...to je ono sto sam zaboravio...
jel neko mozda ima neki uproscen metod ovog proracuna

znaci funkcija da bude oblika D[k+1]=f(e[k],e[k-1]...), pri cemu je D duty ratio (odnos ukljucenosti grejaca/ perioda PWM-a) pri cemi je D u granicama od 0 do 1 a e[k]=zadataTEMPERATURA - merenaTEMPERATURA, naravno u pitanju je funkcija diskretnog oblika.

Nije bitno da parametri Kp, Ti, Td budu striktno optimalno podeseni, to moze biti po Ziegler Nichols kriterijumu ili nekom drugom...
Ko je radio nesto slicno i zna ovo da proracuna nadam se razume o cemu pricam
 
Odgovor na temu

foxhunter

Član broj: 125983
Poruke: 6
89.216.88.*



Profil

icon Re: PID regulacija proracun17.09.2009. u 07:42 - pre 176 meseci
Imas odlicnu brosuru na Parallax-ovom sajtu: "Industrial Control - Student Guide".
http://www.parallax.com/Portals/0/Downloads/docs/books/edu/ic.pdf
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.rs.



+7 Profil

icon Re: PID regulacija proracun22.09.2009. u 13:18 - pre 176 meseci
Ovakve probleme nikada nisam resavao PID regulatorima.

Ako nekoga interesuje moze pogledati kako ja to radim, mozda ce ga zaintrigirati.

Pozdrav.
Prikačeni fajlovi
 
Odgovor na temu

VRadule
Vladimir Radulovic

Član broj: 191689
Poruke: 211
79.101.227.*



+8 Profil

icon Re: PID regulacija proracun22.09.2009. u 22:07 - pre 176 meseci
Korak

malo mi je upala u oči konstatacija

" Kako je teško definisati prenosnu funkciju sistema koji se greje, držaćemo se samo sledećih predpostavki. Sistem je sigurno linearan i sigurno je da postoji neko kašnjenje Y u odnosu na X predstavljeno sa τ."

Ja mislim da ako postoji kašnjenje sistem nije linearan, a ukoliko je linearan za regulaciju je dovoljna P komponenta.








 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.rs.



+7 Profil

icon Re: PID regulacija proracun23.09.2009. u 10:05 - pre 176 meseci
Da, nisam bio precizan kada sam rekao da je sistem linearan. Mislio sam na sledece: sistem se moze opisati linearnom diferencijalnom jednacinom sa konstantnim koeficijentima. To ne znaci da je izlaz linearno prati ulazu, jer kad bi tako bilo ti bi bio u pravu.

Prostiranje toplote je definisano diferencijalnom jednacinom u kojoj su dT/dl (diferencijal po duzini) i dT/dt (diferencijal po vremenu). Sada se ne secam kakva je kompletna jednacina, ali je linearna.

Sta znaci linearna diferencijalna jednacina? To znaci da jeste izlaz linearno zavistan od ulaza, ali ne prati direktno ulaz. To znaci da ako za snagu P imamo posle postizanja stabilnog stanja temperaturu T, onda ce i za snagu k*P posle postizanja stabilnog stanja temperatura biti k*T. Linearna diferencijalna jednacina sistema samo opisuje odziv (prelazno stanje) na promenu snage P. Upravo zbog toga pominjem kasnjenje kroz sistem.

Ekvivalent (u gruboj aproksimaciji) sistemu kojem se regulise temperatura je RC clan. Otpornik odgovara toplotnoj otpornosti od grejaca do mase koja se zagreva, a kondenzator odgovara masi koja se zagreva sa odgovarajucim temperaturnim koeficijentom. To je sistem koji se opisuje linearnom diferencijalnom jednacinom, sa konstantnim koeficijentima, prvog reda. Ulaz je na otporniku, a izlaz na spoju otpornika i kondenzatora. Kada na ulaz dovedes 1V, izlaz pocinje da raste po eksponencijalnom zakonu i asimptotski se priblizava vrednosti 1V. Kad ulaz skoci na 3V, isto se desava tako da izlaz asimptotski tezi ka 3V. U tom smislu je sistem linearan, a zapaza se i kasnjenje izlaza za ulazom.

Osim toga, sistem (pa i linearni) je izlozen spoljnim uticajima tako da je potrebna regulacija onako kako sam je opisao.

Ako linearna jednacina nema konstantne koeficijente, onda se koeficijenti A, B i C, u diferencijalnoj jednacini koju sam opisao, moraju adaptivno menjati zavisno od snage P (X) ili temperature T (Y). Za upravljanje ovakvim sistemima moderno je koristiti fazi logiku.

Pozdrav.
 
Odgovor na temu

salas00

Član broj: 177239
Poruke: 68
*.rcub.bg.ac.rs.



Profil

icon Re: PID regulacija proracun23.09.2009. u 20:16 - pre 176 meseci
korak.
ova tvoja matematika mi je od nekud poznata e sta sad to bese boga pitaj...po matematici to veoma lici na pid samo sto se ovde ne postavlja sve na signalu greske...e sada kako se ovaj tvoj kvazi pid to u literaturi naziva nemam pojma, neki automaticar to sigurno zna. u svakom slucaju cini mi se da ovo sto pricas ima logike i ne treba ga tek tako odbaciti na prvu, ja nisam kompetentan da o tome diskutujem pa nista necu ni komentarisati...
e jedino sto se problem ovde svodi na istu stvar, ako ne znas prenosnu funkciju objekta upravljanja , mozes samo da se igras i probas sa koeficijentima..
cini mi se da u praksi postoji par aproksimativni metod modelovanja procesa i odredjivanje prenosne funkcije sistema na osnovu nekih merenja!

ono sto je meni ovde trebalo je u stvari prenosna funkcija grejaca, cija se prenosna funkcija moze ekvivalentirati prenosnoj funkciji otpornika.. naravno u jednacini ucestvuju temperatura i snaga otpornika...cini mi se jos temperaturna otpornost sredine[K/W] i jos jedan koeficijent[J/K] i puno diferencijala. bilo bi lepo da neko postavi jednacinu i pomogne ostatku sveta....

Naravno ja svoj problem nisam bas korektno resio(najoptimalnije) zato sto nisam imao vremena za ucenje iz pocetka, podesio sam parametre i odredio jednacinu regulacije nekako odokativno, predpostavio sam da mi je za odrzavanje temperature potrebno da grejaci rade sa pola snage (pitanje je da li je ova pretpostavka dobra, sta vi mislite o ovome) i onda se malo igrao sa koeficijentima i nadam se da nisam puno promasio...ja sam ustvari taj svoj nedostatak znanja resio primenom brzog i dobrog senzora, brzog kontrolera i regulisanja snage grejaca na nivou poluperiode pomocu trijaka...e sada ovakvo resenje nije dobro sigurno iz gomile razloga a jedan od njih je i velika smetnja koja se unosi pri ukljucenju grejaca u toku poluperiode, druga stvar je malo usporenije dostizanje stacionarnog stanja...e sada videcu kako ce sve to disati u praksi....
Naravno razmisljam o poboljsanju celog algoritma ( kada budem malo dokon), planiram da zadrzim upravljanje preko trijaka, ali sam razmisljao o koriscenju zero cross detection opto trijaka pri cemu bi periodu PWM signala upravljanja grejacima produzio na 2s, ovako ne bi morao da vodim racuna o detekciji nule sinusoide ali mi se smanjuje rezolucija, ili da ostavim staro resenje a da opet PWM periodu povecam na 2s a to ce sve jedno opet da zraci!!!

korak
ovo tvoje resenje mi deluje primamljivo, zato sto nema integraljenja...jel mozes malo da das konkretne podatke, odnosno sta si regulisao, kolike snage, koeficijente, vremena itd.Znaci ako mozes malo vise prakticno da opises ceo taj tvoj proces.

pozdrav.

 
Odgovor na temu

VRadule
Vladimir Radulovic

Član broj: 191689
Poruke: 211
93.87.175.*



+8 Profil

icon Re: PID regulacija proracun24.09.2009. u 00:29 - pre 176 meseci
Evo ti link ka uputstvu kako se sa mikrokontrolerom pravi PID regulator.

http://ww1.microchip.com/downloads/en/AppNotes/00937a.pdf


Što se tiče prštanja i smetnji jednostavno na kratko isključi grejač, uradi AD konverziju temperature pa nastavi sa grejanjem.

Da bi ti u zapremini vazduha koju greješ bila temperatura što ravnomernija potrebna ti je forsirana cirkulacija vazduha preko grejača.

Pozicioniranje termometra takođe zna da bude kritično. Možda da postaviš nekoliko komada na različitim pozicijama pa njihove temperature
simultano prikazuješ na displeju da bi u fazi razvoja znao tačno šta ti se dešava sa sistemom.





[Ovu poruku je menjao VRadule dana 24.09.2009. u 01:48 GMT+1]
 
Odgovor na temu

sinisa_s
Bremen

Član broj: 98726
Poruke: 55
*.iat.uni-bremen.de.



+3 Profil

icon Re: PID regulacija proracun24.09.2009. u 09:37 - pre 176 meseci
Na prvom linku ispod ima dosta informacija o regulaciji temperature a na drugom je i mala aplikacija za podesavalnje parametara PID kontrolera. Vidjao sam na pojedinim sajtovima slicnih aplikacija, koje mozes koristiti da podesis koeficijente regulatora. Da ne moras da koristis MATLAB.

http://newton.ex.ac.uk/teaching/CDHW/Feedback/
http://newton.ex.ac.uk/cgi-bin...HW/Feedback/OvSimForm-gen.html

Pozdrav.
Sinisa
 
Odgovor na temu

salas00

Član broj: 177239
Poruke: 68
*.rcub.bg.ac.rs.



Profil

icon Re: PID regulacija proracun24.09.2009. u 22:27 - pre 176 meseci
VRadule.
"Što se tiče prštanja i smetnji jednostavno na kratko isključi grejač, uradi AD konverziju temperature pa nastavi sa grejanjem."
Lepa zamisao ali bi me ovi iz EPS-a streljali da to radim sa skoro 10KW....
hvala na linkovima....
 
Odgovor na temu

veselinovic
Jovan Veselinovic
Ist. Sarajevo

Moderator
Član broj: 7761
Poruke: 3860
adsl-193-54.teol.net.



+333 Profil

icon Re: PID regulacija proracun25.09.2009. u 12:29 - pre 176 meseci
Citat:
salas00: VRadule.
"Što se tiče prštanja i smetnji jednostavno na kratko isključi grejač, uradi AD konverziju temperature pa nastavi sa grejanjem."
Lepa zamisao ali bi me ovi iz EPS-a streljali da to radim sa skoro 10KW....
hvala na linkovima....

Prije ce te ubiti ako skontaju da fazno kontrolises 10 kW.
Probaj nam dati malo vise podataka o tvom procesu, mozda se nesto i izrodi.
Pola snage za odrzavanje konstantne temperature moze ako nema mnogo poremecaja, tj. ako malo smetnji napada proces, inace...
Za teoretski dobru regulaciju treba beskonacno mnogo snage pa ti vidi.
Ja sam radio za diplomski jedan simpa regulator ( digitalni regulator sporog procesa sa opservatorom i minimumom trajanja prelaznog procesa) sa samopodesavanjem parametara i garantovano poslije n semplova ( pri cemu je n red procesa) nadje parametre. U matlabu radi perfektno, a u praksi nisam probao.
 
Odgovor na temu

zofr

Član broj: 126534
Poruke: 119
*.dynamic.sbb.rs.



+1 Profil

icon Re: PID regulacija proracun27.09.2009. u 00:47 - pre 176 meseci
Korak, sta ide dalje? Nesto te je pitao salas00, a i mene to interesuje.

Pozdrav
 
Odgovor na temu

grabik

Član broj: 32507
Poruke: 311
77.237.119.*



+7 Profil

icon Re: PID regulacija proracun27.09.2009. u 10:21 - pre 176 meseci
Vidim da trazite vec "sazvakanu" i "svarenu" implementaciju pa evo jedne ;)

PID implementacije sa atmelovog sajta (AVR221.zip).
Nesto slicno sam radio ali prije nego sto sam znao za ovaj primjer i relativno dobro je radilo regulaciju temperature u inkubatoru.

Takodje postoji gotova PID funkcija u microchipovom C kompajleru za DSPIC.


Listing:



/*This file has been prepared for Doxygen automatic documentation generation.*/
/*! \file *********************************************************************
*
* \brief General PID implementation for AVR.
*
* Discrete PID controller implementation. Set up by giving P/I/D terms
* to Init_PID(), and uses a struct PID_DATA to store internal values.
*
* - File: pid.c
* - Compiler: IAR EWAAVR 4.11A
* - Supported devices: All AVR devices can be used.
* - AppNote: AVR221 - Discrete PID controller
*
* \author Atmel Corporation: http://www.atmel.com \n
* Support email: [email protected]
*
* $Name$
* $Revision: 456 $
* $RCSfile$
* $Date: 2006-02-16 12:46:13 +0100 (to, 16 feb 2006) $
*****************************************************************************/

#include "pid.h"
#include "stdint.h"

/*! \brief Initialisation of PID controller parameters.
*
* Initialise the variables used by the PID algorithm.
*
* \param p_factor Proportional term.
* \param i_factor Integral term.
* \param d_factor Derivate term.
* \param pid Struct with PID status.
*/
void pid_Init(int16_t p_factor, int16_t i_factor, int16_t d_factor, struct PID_DATA *pid)
// Set up PID controller parameters
{
// Start values for PID controller
pid->sumError = 0;
pid->lastProcessValue = 0;
// Tuning constants for PID loop
pid->P_Factor = p_factor;
pid->I_Factor = i_factor;
pid->D_Factor = d_factor;
// Limits to avoid overflow
pid->maxError = MAX_INT / (pid->P_Factor + 1);
pid->maxSumError = MAX_I_TERM / (pid->I_Factor + 1);
}


/*! \brief PID control algorithm.
*
* Calculates output from setpoint, process value and PID status.
*
* \param setPoint Desired value.
* \param processValue Measured value.
* \param pid_st PID status struct.
*/
int16_t pid_Controller(int16_t setPoint, int16_t processValue, struct PID_DATA *pid_st)
{
int16_t error, p_term, d_term;
int32_t i_term, ret, temp;

error = setPoint - processValue;

// Calculate Pterm and limit error overflow
if (error > pid_st->maxError){
p_term = MAX_INT;
}
else if (error < -pid_st->maxError){
p_term = -MAX_INT;
}
else{
p_term = pid_st->P_Factor * error;
}

// Calculate Iterm and limit integral runaway
temp = pid_st->sumError + error;
if(temp > pid_st->maxSumError){
i_term = MAX_I_TERM;
pid_st->sumError = pid_st->maxSumError;
}
else if(temp < -pid_st->maxSumError){
i_term = -MAX_I_TERM;
pid_st->sumError = -pid_st->maxSumError;
}
else{
pid_st->sumError = temp;
i_term = pid_st->I_Factor * pid_st->sumError;
}

// Calculate Dterm
d_term = pid_st->D_Factor * (pid_st->lastProcessValue - processValue);

pid_st->lastProcessValue = processValue;

ret = (p_term + i_term + d_term) / SCALING_FACTOR;
if(ret > MAX_INT){
ret = MAX_INT;
}
else if(ret < -MAX_INT){
ret = -MAX_INT;
}

return((int16_t)ret);
}

/*! \brief Resets the integrator.
*
* Calling this function will reset the integrator in the PID regulator.
*/
void pid_Reset_Integrator(pidData_t *pid_st)
{
pid_st->sumError = 0;
}
 
Odgovor na temu

korak
Nis

Član broj: 125522
Poruke: 622
*.dynamic.sbb.rs.



+7 Profil

icon Re: PID regulacija proracun27.09.2009. u 13:19 - pre 176 meseci
Nisam zaboravio, ali ovih dana nemam mnogo vremena. Osim toga, cini mi se da ljudi vise vole da 'guglaju' i da nadju gotova resenja koja (uglavnoma) odmah rade, a ne interesuje ih zasto rede. Ne daj Boze da ne rade. Ona kineska: ucinio si dobro coveku ako mu ne das ribu vac ga naucis da peca, ovde ne vazi. Ja nemam nista protiv da forum ne bude mesto razmene iskustava vec mesto razmene linkova.

Eto to je jedan od razloga sto nemam velike volje da nastavim. Ali kako mi je postavljeno pitanje, kada nadjem vremena, prenecu do kraja moja iskustva u regulaciji procesa mikrokontrolerom.

Pozdrav.
 
Odgovor na temu

veselinovic
Jovan Veselinovic
Ist. Sarajevo

Moderator
Član broj: 7761
Poruke: 3860
91.191.7.125



+333 Profil

icon Re: PID regulacija proracun27.09.2009. u 20:40 - pre 176 meseci
Citat:
korak: Nisam zaboravio, ali ovih dana nemam mnogo vremena. Osim toga, cini mi se da ljudi vise vole da 'guglaju' i da nadju gotova resenja koja (uglavnoma) odmah rade, a ne interesuje ih zasto rede. Ne daj Boze da ne rade. Ona kineska: ucinio si dobro coveku ako mu ne das ribu vac ga naucis da peca, ovde ne vazi. Ja nemam nista protiv da forum ne bude mesto razmene iskustava vec mesto razmene linkova.

Eto to je jedan od razloga sto nemam velike volje da nastavim. Ali kako mi je postavljeno pitanje, kada nadjem vremena, prenecu do kraja moja iskustva u regulaciji procesa mikrokontrolerom.

Pozdrav.


Gresis Korak.
Ovo treba i mora biti mjesto za " pecanje ". Restoran gdje sluze ispecenu ribu je na drugom kraju.
Rado citam Tvoje pisanije, a iskreno meni je zao sto u mom okruzenju ne mogu da radim te stvari.
Par zadnjih godina sam u jakoj struji koju ne volim, ali jedem leba od nje.
Mogu Ti reci da me, iskreno, iznenadilo da se niko nije " upecao " na moj diplomski, ali kao sto kazes sveti internet ima rjesenje za sve-osim za ono sto nam treba.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: PID regulacija proracun28.09.2009. u 20:55 - pre 176 meseci
@veselinovic ako u tom tvom diplomskom ima teorije, evo ga jedan zainteresovan :)

@korak, nemoj da se nerviras unapred, ima sigurno jos ljudi koji pomno citaju teoretski deo (evo ga jedan) al ne ucestvuju preterano u delu (sta ja da pisem o pid kontroli kada moj kontroler grejanja za veliku pec radi sa +-delta i ako je merena temperatura manja od odabrana - delta upalim grejac, ako je veca od odabrana + delta ja ga ugasim ... dakle debilnije ne moze :D ... al daleko od "idealnog")
 
Odgovor na temu

veselinovic
Jovan Veselinovic
Ist. Sarajevo

Moderator
Član broj: 7761
Poruke: 3860
adsl-194-233.teol.net.



+333 Profil

icon Re: PID regulacija proracun29.09.2009. u 07:35 - pre 176 meseci
Pun teorije od pocetka do kraja.
Saljem veceras kad dodjem kuci.
 
Odgovor na temu

alnaser

Član broj: 16747
Poruke: 33
213.196.125.*



Profil

icon Re: PID regulacija proracun30.09.2009. u 14:22 - pre 176 meseci
@veselinovic

i ja sam zainteresovan..
 
Odgovor na temu

veselinovic
Jovan Veselinovic
Ist. Sarajevo

Moderator
Član broj: 7761
Poruke: 3860
91.191.7.125



+333 Profil

icon Re: PID regulacija proracun30.09.2009. u 20:10 - pre 176 meseci
Evo sacekacu da se jos neko pojavi pa zajedno da saljem.
Samo mi posaljite email adrese da mogu poslati.

[Ovu poruku je menjao veselinovic dana 01.10.2009. u 19:30 GMT+1]
 
Odgovor na temu

milovanmaric
milovanmaric
MElektro
Cacak

Član broj: 218769
Poruke: 315
79.101.233.*



+2 Profil

icon Re: PID regulacija proracun30.09.2009. u 21:26 - pre 176 meseci


posalji i meni, u guzvi sam pa sam uglavnom nemi posmatrac, kad imam vremena onda i ucestvujem
 
Odgovor na temu

salas00

Član broj: 177239
Poruke: 68
*.rcub.bg.ac.rs.



Profil

icon Re: PID regulacija proracun04.10.2009. u 11:49 - pre 176 meseci
@sinisa_s

sada sam bas gledao onaj link sa onom aplikacijom zanimljiv je....

da li neko zna kako mogu da aproksimativno izracunam one modele parametara( odnosno temperaturni otpor sredine i temperaturni koeficijent grejaca ( ja sam nekako dobio da mi je R0 = 0.021 a C0 = 140000 jel to u redu, sta da radim sa ova ostala dva?)) bar nekako priblizno na osnovu podataka koje ja imam o celom sistemu je to da je maksimalna snaga grejaca 8kW.(grejaci su inace ukupno 8x1.25KW = 10kW na 230v, ali u mestu gde su postavljeni moze maksimalno na mrezi da bude 205-210V tako da mu to dođe malo jace od 8KW) grejacima je pri snazi od oko 6500W (napon je bio jos manji) trebalo oko 20min da zagreju tempereturu u tunelu do 100 stepeni, do 150 stepeni su stigli za 43min a do 170 za 52min. Duzina tunela je 4m a otvor(ulaz) je 15x70 cm. U tunelu je vazduh tako da se radi o regulaciji temperature vazduha. Temperatura sredine je bila oko 20 stepeni.

 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: PID regulacija proracun

Strane: 1 2

[ Pregleda: 14188 | Odgovora: 21 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.