bobtech Postat Martie 30, 2005 Partajează Postat Martie 30, 2005 a implementat cineva un algoritm de control in bucla (PID) pt PIC ? Link spre comentariu
cirip Postat Martie 31, 2005 Partajează Postat Martie 31, 2005 Si eu, si eu, si eu..... :lol: Cirip Link spre comentariu
bogdanm Postat Martie 31, 2005 Partajează Postat Martie 31, 2005 M-ar interesa si pe mine niste surse in fixed point, si chiar un tutorial ceva mai bun. Stiu ca exista o groaza pe net si fara indoiala o sa gasesc daca o sa caut, intreb insa daca stiti unul care vi s-a parut voua bun si aveti link-ul la indemana. Daca nu, ma apuc sa caut. Nu e ceva de care sa am nevoie chiar acum, dar sunt sigur ca la un moment dat voi implementa asa ceva, si e bine sa fiu pregatit Link spre comentariu
bobtech Postat Martie 31, 2005 Autor Partajează Postat Martie 31, 2005 M-ar interesa si pe mine niste surse in fixed point, si chiar un tutorial ceva mai bunsi pe mine :)eu de exemplu vreau sa controlez temperatura din acvariu si vreau sa varieze cat mai putin in jurul setpointului.algoritmul l-ai implementat in C sau ASM sau ... ? Link spre comentariu
bogdanm Postat Martie 31, 2005 Partajează Postat Martie 31, 2005 si pe mine :)eu de exemplu vreau sa controlez temperatura din acvariu si vreau sa varieze cat mai putin in jurul setpointului.algoritmul l-ai implementat in C sau ASM sau ... ?Eu nu. Adevaru e ca mi-e somn si mi-e prea lene sa caut I-am dat totusi un search dupa "PID" pe avrfreaks, si am gasit o groaza de chestii interesante:http://www.embedded.com/2000/0010/0010feat3.htm - teoriehttp://www.barello.net/Papers/Motion%5FControl/ - teorie + implementarehttp://www.avrfreaks.net/index.php?name ... pid#130757 - implementarehttp://www.jashaw.com/pid/code.htm - implementarihttp://www.avrfreaks.net/index.php?name ... hlight=pid - implementarehttp://www.avrfreaks.net/index.php?name ... hlight=pid - implementarehttp://hubbard.engr.scu.edu/embedded/av ... index.html - o gramada de cod, are si PIDhttp://www.jashaw.com/pid/code2.html - "improved PID"http://www.mcselec.com/an_109.htm - cod in BASICGata, m-am oprit Mai mult ca sigur poti sa compilezi ceva din toata povestea asta.EDIT: uite si o aplicatie simpatica rau a unui controller PID, pe una din paginile mele favorite de pe net:http://elm-chan.org/works/ltc/report.html Link spre comentariu
sifor Postat Martie 31, 2005 Partajează Postat Martie 31, 2005 Nu se poate vorbi de un algoritm PID universal ! La actionari motoare elecrice si alte chestii similare trebuie un regulator PID cu timp de raspuns foarte rapid ! La reglaje de temperatura este suficient un regulator PID cu timp de raspuns lent ! Deci conteaza foarte mult aplicatia la care vrei sa folosesti regulatorul !Don Mario Link spre comentariu
Cristiano Postat Martie 31, 2005 Partajează Postat Martie 31, 2005 Microchip Application Note AN937 si AN964. Link spre comentariu
cirip Postat Martie 31, 2005 Partajează Postat Martie 31, 2005 PID cu timp de raspuns foarte rapidTimpul de raspuns este dat de alegerea constantelor regulatorului: Kp, Ki si Kd. Daca integratorul are contributie majora (Ki e mare), reglajul este lent si introduce intarziere. Daca derivatorul are snaga (Kd e mare), reglarea se va face cu avans de faza, adica reactia va fi mai rapida. Cred ca teoria generala a PID-ului e aceeasi. Acordul regulatorului este, pe de alta parte, o arta in sine. Am citit brosurele care trateaza numai tehnici de acord.Cat despre ceea ce am facut eu, eu am implementat pur si simplu ecuatia cu diferente finite care rezulta din teoria PID-ului. Concret, am luat forma Laplace si i-am aplicat transformarea biliniara ca sa obtin transformata Z, apoi din transf Z am trecut in timp (esantioane). Suna pompos, dar e mai simplu decat pare. Daca vreti postez direct formula finala. Am lucrat cu intregi cu semn pe 16 biti si mi-a fost suficient; nu am simtit nevoia sa ma complic cu virgula fixa sau mobila. Singura problemutza mai stufoasa a fost multiplicatorul de 16X16->32 cu semn, soft. Ala mi-a mancat o parte din zilisoare, dar pana la urma l-am scos. Este insa destul de lent. Are nevoie de cateva ms ca sa faca o inmultire, dar cum eu esantionez la 1 secunda, nu e mare scofala.Ca in orica caz de desepeala, simularea a avut un rol important. Eu am simulat in Matlab, dar se poate face f usor si in excel.Sa ma iertati daca ptr unii e chineza ce am scris mai sus, dar sunt convins ca exista forumisti care au inteles exact ce am spus. Oricum, softul unui PID digital nu e un proiect de incepator. Softanul a fost scris in asamblare (MPLAB) pentru F876.Bafta!CiripEDIT: Uite c-am gasit si formula finala.y(n)=y(n-1)+(Kp+Ki)*x(n)+(Kd-Kp)*x(n-1)-Kd*x(n-2)in care:y(n)=esantionul curent al iesirii regulatoruluiy(n-1)=esantionul anterior al iesirii regulatorluix(n)=esantionul curent al intrarii in regulatorx(n-1),x(n-2)= esantioanele anterioare introduse cu 1 respectiv doua perioade de esantionare in urma.x-ii, adica esantioanele de intrare, sunt de fapt diferenta dintre valoarea masurata si cea de referinta adica cea setata. Se observa din formula ca daca val masurata este egala cu cea prescrisa, diferenta (x) devine zero si ecuatia mentine iesirea constanta, adica y(n)=y(n-1).Bagati formula asta recursiva in excel si o sa-l vedeti cum "se regleaza" . Va pot ajuta la chestia asta cu excelul, dar in masura in care exista interes si in masura timpului meu disponibil.A! Si la excel e f misto ca poti sa vezi cum se schimba regimul tranzitoriu in fct de constantele regulatorului sau te trezesti ca incepe sa oscileze... Circ! Link spre comentariu
bobtech Postat Aprilie 3, 2005 Autor Partajează Postat Aprilie 3, 2005 @CiripMultumesc de informatii.Sper sa am timp sa ma ocup cat mai curand de proiectu' asta si atunci poate te mai deranjez cu intrebari Link spre comentariu
cirip Postat Aprilie 4, 2005 Partajează Postat Aprilie 4, 2005 Pentru putin. Nici un deranj. Spor!Cirip Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum