Proiectarea Si Realizarea Unui Regulator Pid

Proiect de diploma

Proiectarea si realizarea unui regulator PID

pentru comanda unei statii de lipit

Cuprins

Capitolul 1. Introducere

Capitolul 2. Prezentare teoretica

2.1 Regulatorul PID

2.1.1 Algoritmul PID continuu

2.1.2 Forma numerica a algoritmului PID

2.1.3 Alegerea perioadei de esantionare

2.1.4 Alegerea si acordarea regulatoarelor

2.2 Masurarea temperaturii

2.2.1 Introducere

2.2.2 Traductorul de temperatura tip termocuplu

2.2.3 Tehnici de liniarizare a termocuplurilor

2.3 Microcontrollerul PIC 18F2520

2.3.1 Caracteristicile microcontrolerului:

2.3.2 Organizarea memoriei

2.3.3 Memoria EEPROM

2.3.4 Porturile I/O

2.3.5 Modulul oscilator cu sistemul PLL de monitorizare a ceasului

2.3.6 Modulele Timer

2.3.7 Modulul de Stocare/Comparare/PWM (CCP)

2.4 Encoderul de pozitie incremental

2.5 Amplificatorul operational AD8551

2.6 Convertorul analog-digital MCP3202

2.7 Afisajul alfanumenic RC1602D

Capitolul 3. Proiectarea schemei electrice

3.1 Introducere

3.2 Realizarea schemei electrice

3.2.1 Circuitul de amplificare

3.2.2 Conectarea perifericelor la microcontroller

3.2.3 Realizarea cablajului

Capitolul 4. Realizarea programului pentru microcontroller

4.1 Introducere

4.2 Descrierea programului

4.2.1 Initializarea microprocesorului

4.2.2 Descrierea subrutinelor principale

Capitolul 5. Rezultate experimentale

5.1 Introducere

5.2 Masurarea temperaturii reale

5.3 Acordarea regulatorului

Capitolul 6. Concluzii

Introducere

Regulatoarele pid sunt folosite intr-o gama foarte mare de aplicatii industriale sau casnice care presupun reglarea debitului, nivelului, presiunii, temperaturii, turatiei, etc. datorita eficientei si flexibilitatii lor. Pentru algrea tipului de regulator trebuiesc avute in vedere principiul de functionare, caracteristicile procesului, caracteristicile statice ale elementelor, performantele impuse sistemului.

Obiectivul acestui proiect este de a proiecta si realiza un sistem de control al temperaturii unui ciocan de lipit, implementand un algoritm PID ce va fi programat intr-un microcontroler PIC , setarile regulatorului precum si temperaturile,setata si actuala, vor fi vizualizate pe un display alfanumeric cu doua linii si 16 caractere pe linie. Setarile se vor putea modifica prin intermediul unui encoder rotativ cu un buton incorporat.

Pentru a atinge obiectivul impus am folosit microcontrolerul PIC18F2520 , convertorul analog/numeric MCP3202 ,amplificatorul operational AD8551 si controlul PWM al tensiunii de alimentare a elementului de incalzire. Temperatura varfului de lipire este este masurata cu un termocuplu tip K introdus in interiorul acestuia.

Sistemul va fi capabil să mentina varful de lipire la o temperatura cat mai aproape de temperatura impusa in momenutul efectuarii lipiturilor.

Contributia personala consta in realizarea programului pentru regulator si costructia sistemului de control a temperaturii.

1.Programul microcontrolerlui a fost realizat folosind limbajul Basic si mediul de dezvoltare MicroCode Studio. Aplicația calculeaza comanda elementului de incalzire a ciocanului de lipit, comanda alimentarea acestuia cu semnal PWM pentru a atinge si mentine temperatura setata. Temperatura si parametrii regulatorului pid vor fi afisate pe un display alfanumeric, iar modificarea acestora se va face prin intermediul unui encoder incremental prevazut si cu un buton fara retinere .

2.Proiectarea schemei electronice a cablajului si simularea functonarii montajului au fost facute in programul Proteus ISIS respectiv ARES.

Prezentare teoretica

Regulatorul PID

Algoritmul PID continuu

Regulatorul PID (fig.2.1) are rolul de a obtine marimea de comanda prin prelucrarea erorii calculata ca diferenta intre referinta(setpoint) si reactie (valoarea marimii reglate).Dupa modul de formare a erorii regulatorul poate avea sensul:

direct: (comanda creste la cresterea marimii reglate)

invers: (comanda scade la cresterea marimii reglate) sens adoptat si in prezentul proiect

Regulatoarele PID sunt unele din cele mai complexe regulatoare industriale, asigurând performanțe de reglare superioare. Ele înglobează efectele proportional P, integral I și derivativ D.

Fig.2.1 Regulatorul PID

Proiectarea unui regulator presupune alegerea structurii lui, adica a numarului de blocuri de reglare, cat si a parametrilor, astfel incat sistemul rezultat sa ofere comportamenul necesar aplicatiei pentru care este proiectat.

In general cele mai utilizate regulatoare sunt cele de tip P, PI, PD si PID (cu raspunsurile la intrare treapta unitara evidentiate in figura 2.2) care calculează comanda c(t) dupa următoarele relatii:

regulatorul proportional

regulatorul proportional,integral

regulatorul proportional,derivativ

regulatorul proportional,integral,derivativ

unde:

constanta partii proportionale

constanta partii integrale

constanta partii derivative

Fig.2.2 Raspunsul indicial al unui sistem

cu regulator de tip P, PI, PID

Componenta proportionala depinde de valoarea curenta a erorii, cea integrala depinde de suma erorilor recente, iar cea derivativa depinde de viteza de variatie a erorii.In figura 2.3 este prezentat efectul fiecareia dintre componente.

Fig.2.3 Efectul componentelor P,I si D asupra comenzii

Componenta proportionala este de cele mai multe ori componenta principala din cadrul unu regulator pid, dezavantajul folosirii doar a componentei proportionale il constituie imposibilitatea eliminarii in totalitate a abaterii.

Pentru regulatoarele industriale, in locul factorului de amplificare KP, se foloseste de cele mai multe ori constanta denumita banda de proporționalitate a regulatorului, notată BP. In momentul in care domeniul de variație al erorii ε este egal cu domeniul de variație al mărimii de comanda c (regulatoare unificate), banda proporționalitate se determină din relația:

(2.5)

Dacă domeniile de variatie intrare-iesire difera, banda de proportionalitate se determina cu relatia:

(2.6)

Banda de proporționalitate reprezintă procentul din domeniul de variatie a erorii ε pentru care regulatorul P produce o comandă egală cu 100 % din domeniul de variatie a marimii de comanda c.

Componenta integratoare are avantajul eliminarii in totalitate a abaterii (are un caracter “persistent”deoarece actiunea sa nu inceteaza pana la eliminarea in totalitate a erorii), dar prezinta performantele dinamice reduse in raport cu cele ale componentei proportionale. Constanta de integrare Ti este exprimata in unitati de timp si influenteaza viteza de integrare (cresterea valorii acesteia micsoreaza efectul componentei integratoare asupra comenzii).

Componenta derivativa un caracter “anticipativ”, adica in momentul in care apar modificari in timp ale erorii, aceasta determina variatii ale comenzii in asa fel incat abaterea sa fie eliminta rapid.Componenta derivativa este proportionala cu viteza de variatie a erorii sistemului.Valoarea componentei derivative a comenzii este determinata de constanta de timp de derivare Td ,exprimata in unitati de timp. Daca viteza de variatie a abaterii este constanta plusul de comanda reprezinta o treapta care este proportionala cu Td.

Forma numerica a algoritmului PID

Datorita dezvoltarii tehnicii de calcul numerice, aceasta a fost introdusa si in structura regulatoarelor PID. Realizarea numerică a unei legi de reglare este justificată în principal de următoarele considerente:

se pot realiza legi de reglare superioare regulatoarelor analogice

regulatorul numeric se poate integra intr-un SRA numeric complex

pentru procese lente, la care constantele de timp au valori mari, se pot conduce cu acelasi regulator numeric, mai multor bucle de reglare;

posibilitatea de integrare a regulatorului numeric intr-un sistem ierarhizat, condus de calculator;

se pot implementa algoritmi de reglare evoluati (de exemplu conducerea dupa stare).

Algoritmul PID implementat in regulatoarele numerice se obtine prin discretizarea relatiei continue:

Pentru perioada de esantionare T, cu tk=kT si tk-1=(k-1)T, k , se obtine forma pozitionala a algoritmului pid, forma ce necesita initializarea la fiecare pas:

Pentru obtinerea relatiilor de mai sus s-a considerat integrarea numerica prin metoda dreptunghiurilor utilizata si in prezentul proiect figura 2.4 si anume:

Pentru o aproximare mai precisa a componentei integrale se poate folosi metoda trapezurilor figura 2.5 si anume:

Fig. 2.4 Fig. 2.5

Pentru derivarea numerica s-au acceptat aproximarile:

Din forma pozitionala a algoritmului PID la momentele Tk si Tk-1 se obtine variata recursiva ce nu mai necesita initializarea la fiecare pas:

Relatia poate fi intalnita si sub forma:

unde:

T – perioada de esantionare

Alegerea perioadei de esantionare

Discretizarea algoritmilor continuii duce, de cele mai multe ori, la diminuarea performantelor ca urmare a aproximarii componentelor integrala si derivativa si un in ultimul rand a pierderii de informatie la efectuarea conversiei analog/numerice. Pentru alegerea perioadei de esantionare se recomanda folosirea relatiilor ccare definesc dependenta intre T (perioada de esantionare) si Ti, respectiv T si Td.

Regulatoarele numerice industriale care regleaza un numar mic de marimi ale procesului folosesc o rata de esantionare de oridnul a 100 ms. Alegerea acesteia T in jur de (75 – 150) ms determina comportarea cvasicontinua a algoritmului de reglare. Pentru acest tip de regulatoare se pot folosi metodele de acordare cunoscute din domeniul sistemelor de reglare continue.

Este de mentionat faptul ca folosirea frecventelor mari de esantioanare pot asigura o aproximare buna a algoritmului de reglare, dar costul interfetei de proces creste, numarul buclelor de reglare ce se pot realiza cu un singur regulator scade, iar complexitatea algoritmilor implementati este limitata.

Daca rata de esantionare este prea mare, atunci pierderea de informatie in urma conversiei analog/numerice determina o precizie redusa a sistemului de reglare, perturbatiile putand determina oscilatii intre momentele la care se realizeaza operatia de esantionare.

Factorii esentiali ce trebuie luati in consideratie la alegerea perioadei de discretizare sunt:

performantele dorite pentru sistemul de reglare

dinamica procesului si spectrul de frecvenata al perturbatiilor

particularitatile elementului de executie si ale traductoarelor

complexitatea algoritmilor si costul pentru fiecare bucla de reglare

Se poate observa ca alegerea perioadei de esantionare T presupune analiza mai multor factori, al caror efect este de cele mai multe ori contradictoriu. In cazul sistemelor de reglare cu regulatoare numerice, sunt prezentate in documentatia de specialitate recomandari privind alegerea perioadei T pentru mai multe tipuri de procese

Dintre recomandarile pentru alegerea ratei de esantionare amintim cateva: 

pentru regulatoarele PI;

sau T ≈ (0.1 … 0.3) To pentru regulatoarele PI acordate pe baza metodei Ziegler – Nicholas si procese cu timp mort;

, unde Ttr reprezinta durata regimului tranzitoriu. 

Cerintele de performanta impuse la urmarirea referintei si rejectia perturbatiilor sunt factori determinanti la alegerea perioadei T. Cunoasterea apriori a performantelor elementelor de executie si ale traductoarelor, precum si cunoasterea calsei de perturbatii ce actioneaza asupra procesului reprezinta cerinte primare pentru o alegere corespunzatoare a perioadei T.

Alegerea si acordarea regulatoarelor

Elementele ce caracterizeaza regulatoarele automate si pe baza cărora se pot compara între ele diferitele tipuri de regulatoare, în scopul alegerii celui mai potrivit model de regulator pentru procesul ce se doreste a fi reglat, sunt următoarele:

natura fizică a mărimii de intrare și ieșire;

mediul în care vor lucra regulatoarele;

gradul de complexitate al procesului și performanțele ce se impun mărimii reglate.

pentru mionare T presupune analiza mai multor factori, al caror efect este de cele mai multe ori contradictoriu. In cazul sistemelor de reglare cu regulatoare numerice, sunt prezentate in documentatia de specialitate recomandari privind alegerea perioadei T pentru mai multe tipuri de procese

Dintre recomandarile pentru alegerea ratei de esantionare amintim cateva: 

pentru regulatoarele PI;

sau T ≈ (0.1 … 0.3) To pentru regulatoarele PI acordate pe baza metodei Ziegler – Nicholas si procese cu timp mort;

, unde Ttr reprezinta durata regimului tranzitoriu. 

Cerintele de performanta impuse la urmarirea referintei si rejectia perturbatiilor sunt factori determinanti la alegerea perioadei T. Cunoasterea apriori a performantelor elementelor de executie si ale traductoarelor, precum si cunoasterea calsei de perturbatii ce actioneaza asupra procesului reprezinta cerinte primare pentru o alegere corespunzatoare a perioadei T.

Alegerea si acordarea regulatoarelor

Elementele ce caracterizeaza regulatoarele automate si pe baza cărora se pot compara între ele diferitele tipuri de regulatoare, în scopul alegerii celui mai potrivit model de regulator pentru procesul ce se doreste a fi reglat, sunt următoarele:

natura fizică a mărimii de intrare și ieșire;

mediul în care vor lucra regulatoarele;

gradul de complexitate al procesului și performanțele ce se impun mărimii reglate.

pentru majoritatea proceselor, legile de reglare P, PI, PD sau PID ofera performante satisfacatoare, dar există procese la care se impun, datorită strategiilor complexe de conducere, regulatoare cu structuri speciale, cum ar fi cele de tip extremal, adaptiv etc. Aceste structuri se realizează, de cele mai multe ori, cu structuri numerice;

posibilitatea de integrare în sisteme numerice complexe de conducere(calculatoare de proces);

parametrii legii de reglare : constanta de timp de integrare TI, constante de timp de derivare TD, banda de proporționalitate BP ;

trecerea regulatorului din modul automat-manual si invers, fara soc si fără o echilibrare prealabila;

viteza de răspuns a procesului automatizat;

numărul de elemente de executie ce pot fi comandate simultan, de către un regulator.

Proiectarea regulatorului automat se face atât pe baza datelor initiale, furnizate de caracteristicile elementului de executie si ale instalatiei tehnologice, ce alcatuiesc partea fixata (procesul) a unui sistem de reglare automata, cat si pe baza performantelor in regim stationar si tranzitoriu ce se urmăresc a fi realizate in cadrul sistemului.

Deoarece parametrii regulatorului automat se pot lua valori mai mici sau mai mari decât cele necesare pentru reglarea procesului respectiv, este necesara operația de acordare a regulatorului ales. Aceasta consta reglarea parametrilor regulatorului Kp, Ti, Td. Daca aceasta ajustare are ca scop optimizarea procesului reglat conform unui anumit criteriu, de exemplu minimizarea erorii, ea devine o acordare optimă a regulatorului. Limitele in care variaza parametrii Kp, Ti, Td ai regulatorului ales depind de natura si caracteristicile procesului din sistemul de reglare automata.

Pentru alegerea, proiectarea si acordarea regulatoarelor este necesara cunoasterea cat mai exacta a caracteristicilor procesului ce urmează a fi reglat.

In practica, de multe ori, aceste caracteristici sunt ridicate experimental. In acest scop se considera elementul de executie, instalatia tehnologica si traductorul ca formand partea fixata (PF) (figura2.6) a sistemului de reglare automata (SRA) si i se aplica un semnal de comanda de tip treapta, urmandu-se evolutia în timp a marimii de iesire a procesului.

Fig.2.6 Schema bloc a SRA

Prin aceasta metoda de identificare experimentala se apreciaza parametrii de baza ai partii fixate: factorul de amplificare KPF, constanta de timp TPF și timpul mort τ. Pentru un răspuns real y(t) precum cel reprezentat în figura 2.7, KPF este egal cu valoarea stationara yst a marimii de iesire a părtii fixate (deoarece treapta de comanda u(t) era unitara). Pentru obtinerea parametrilor TPF și τ se procedeaza astfel:

se duce in punctul de inflexiune I tangenta la y(t) obtinandu-se punctele A și B.

din B se duce perpendiculara pe axa absciselor, rezultand punctul C. Timpul mort τ este dat de marimea segmentului OA iar constanta de timp TPF a partii fixate este data de mărimea segmentului AC.

Fig.2.7 Raspunsul si identificarea parametrilor partii fixate a sistemului

In ceea ce priveste răspunsul indicial (raspunsul la intrare treapta unitara), interpretarea acestuia in scopul determinarii functiei de transfer se face fie utilizand atlase cu răspunsuri tipice normate, pentru sisteme tip cum este exemplul raspunsului indicial din figura 2.7. Se arata ca dinamica sistemului se poate aproxima bine printr-o constanta de timp mort si o constanta de timp principala T. Dacă marimea de intrare are o variatie Δu , iar marimea de iesire s-a stabilizat cu o abatere Δy față de vechiul regim stationar, atunci procesul va avea o funcție de transfer: cu factorul de amplificare cu constanta de timp egala cu valoarea subtangentei dusă in punctul de inflexiune și τ timpul mort (sau timpul de intarziere al raspunsului).

Acordarea regulatorului automat reprezintă ajustarea parametrilor acestuia conform cerintelor procesului. Daca aceasta modificare a parametrilor are în vedere o comportare a procesului determinata de un anumit criteriu (de exemplu, durata minimă a regimului tranzitoriu, influența minima a perturbatiilor, etc.), acordarea se numeste acordare optima.

Se va prezenta in continuare criteriul suprafetei minime a erorii (Ziegler-Nichols) de acordare experimentala optima a regulatoarelor liniare si continue. Criteriul face parte din categoria metodelor experimentale de acordare, bazate pe atingerea limitei de stabilitate. Aceste metode nu necesită identificarea in prealabil a modelului partii fixate, ele aplicandu-se cu bucla de reglare în functiune, cu referinta si perturbatiile mentinute constante si cu modificarea parametrilor regulatorului, pana in momentul in care SRA atinge limita de stabilitate. Este un criteriu de minimizare a erorii dintre răspunsul real si cel ideal.

Tinând seama de o serie de particularitati (sisteme cu regim oscilant sau sisteme cu
ɛst≠0) Ziegler si Nichols au propus următoarea metodologie de acordare a regulatorului automat:

se trece regulatorul pe lege de comanda P

se creste factorul de amplificare al acestuia pana in momentul in care se atinge limita de stabilitate, in cadrul sistemului producandu-se oscilatii intretinute, si se noteaza perioada oscilatiilor cu Tlim si amplificarea la limita de stabilitate KPlim.

Criteriul este aplicabil în forma clasica pe structurile simple de sisteme de reglare automata cu o singura marime de intrare și o singura marime de iesire.

Stabilirea parametrilor regulatorului PID cu ajutorul criteriului Ziegler–Nichols este deosebit de simpla si se bazeaza exclusiv pe limita de stabilitate a sistemului functionand in circuit inchis. Este necesar sa stabilim factorul de amplificare limita, deci factorul de amplificare care asigura producerea oscilantatiilor intretinute cu sistemul funcționând in circuit inchis. De asemenea este necesara stabilirea perioadei de oscilatie pentru un astfel de regim.

Dacă vom nota Klim valoarea amplificarii care asigura funcționarea la limita de stabilitate si Tlim peroiada de auto-oscilație a sistemului parametrii regulatorului se determina pe baza relatiilor prezentate în Tabelul 2.1.

Tabelul 2.1

Metoda prezentata este extrem de simpla si ușor de aplicat. Din păcate un astfel de criteriu nu furnizează informatii referitoare la performantele sistemului. Este recomandabil ca odată operatia de sinteza terminata sa se efectueze evaluarea comportarii sistemului în bucla închisa cu regulatorul prin simulare.

Masurarea temperaturii

Introducere

Temperatura este una dintre marimile cele mai des masurate in cele mai multe domenii, fiind o marime fizica foarte importanta deoarece in majoritatea proceselor intervin fenomene de natură termica. Conform statisticilor pentru aplicatiile industriale 50% din punctele de masurare si peste 20% din buclele de reglare au ca obiectiv masurarea si reglarea temperaturii sau a altor marimi de natura termica.

Este de dorit ca masurarile sa se efectueze cu o precizie cat mai ridicata, iar mijloacele de masurare sa nuinfluenteze sau sa influenteze cat mai putin procesele. Mediile a caror temperaturi se masoara pot fi gaz, lichid sau solid.

Datorita faptului ca practica masurarii si reglarii temperaturii are o istorie indelungata, au fost dezvoltate numeroase tipuri de traductoare de temperatura si aparate de masurat. Principiile de functionare ale acestora deriva din dependenta de temperatura a anumitor proprietati fizice si/sau chimice ale corpurilor.

Dezvoltarea tehnologiei din ultima perioada a dus la marirea considerabila a gamei de fenomene susceptibile de a furniza semnale ce pot fi interpretate pentru obtinerea valorii temperaturii, cu o precizie ridicata.

Masurarea temperaturii are la baza diferite fenomene fizico-chimice, in care modificarea temperaturii produce modificarea ale unor proprietati sau caracteristici ale materialelor:

producerea unei tensiuni electromotoare (efectul Seebeck);

modificarea dimensiunilor;

variatia rezistentei electrice;

variatia intensitatii radiatiei emise;

variatia frecventei de rezonanta pentru cristalele de cuart.

In tabelul 2.1 sunt prezentate cateva dintre cele mai uzuale tipuri de traductoare de temperatura.

Tabelul 2.1

Concluziile desprinse sunt urmatoarele:

Termocuplurile pot masura temperaturi extreme, ele masoara temperatura relativa si din aceasta cauza necesita compensarea jonctiunii reci, sunt neliniare si produc la iesire un semnal de ordinul zecilor de microvolti care impune o amplificare mare.

Senzorii de temperatura cu semiconductori produc semnale de iesire mai mari, dar ulilizarea acestora este limitata de domeniul relativ restrans de temperaturi de lucru.

Termometrele cu rezistenta metalica prezinta o acuratete si o liniaritate mai buna, dar pentru folosirea lor este necesara o sursa de energie de excitare si un circuit de masura de tip punte.

Termistorii au cea mai mare sensibilitate dar in acelasi timp sunt si cei mai neliniari.

Traductorul de temperatura tip termocuplu

Termocuplul se obtine prin imbinarea la unul din capete a doi electrozi din materiale cu proprietati fizice diferite. Atunci cand cele două jonctiuni ale termocuplului se afla la temperaturi diferite, atunci la capetele libere ale electrozilor va aparea o diferenta de potential ce depinde de diferenta dintre temperaturile jonctiunilor, figura 2.8.

Fig. 2.8. Efectul Seebeck.

Efectul Seebeck consta în aparitia unei tensiuni electromotoare nete intr-un circuit cu doua intre metale diferite, ce sunt mentinute la temperaturi diferite.

Intr-un termocuplu, sunt combinate doua materiale avand caracteristici forta electromotoare/temperatura diferite, pentru a produce o tensiune de iesire utilizabila. Astfel, un termocuplu format din doi conductori A și B, diferiti ca material, într-un gradient de temperatura, va genera semnal de ieșire datorita interactiunii gradientului de temperatura în ambii conductori A și B. Se va produce tensiune electromotoare Et=V1-V2 corespunzătoare diferentei de temperatura T1-T2.

In concluzie, un termocuplu produce o tensiune la capetele libere care este în relatie directa cu temperaturile celor două jonctiuni ale sale. In general conexiunea intre cele doua fire din materiale diferite este denumita jonctiune calda, iar jonctiunea care leaga firele din materiale diferite cu conexiunile de iesire din cupru jonctiune rece, figura 2.9. Daca jonctiunea de rece se mentine la o temperatura cunoscuta, temperatura jonctiunii calde se poate determina din tensiunea de iesire a termocuplului.

Jonctiunea rece are temperatura T0 iar punctul de sudura al electrozilor, jonctiunea calda, se afla la temperatura mediului de masurare T. Tensiunea electromotoare Seebek are expresia:

în care αAB reprezintă coeficientul Seebek relativ la conductorii A și B.

Fig. 2.9 Componenta termocuplului si a circuitul de măsura asociat.

Alegerea materialelor pentru termocupluri. Marea majoritate a materialelor conductoare produc tensiune termo-electrica, insa datorita domeniului de temperatura, semnalului de iesire util, stabilitatii si liniaritatii relatiei dintre temperatura si tensiune electromotoare, posibilitatile practice de selectie a materialelor sunt restranse.

Astazi exista o varietate de termocupluri ce acopera domeniul de temperaturi de la -250°C pana la peste 2000°C,prezentate in tabelul 2.2.

Tabelul 2.2

Cromel – aliaj 90%Ni+10%Cr

Alumel – aliaj 95% Ni+2% Mn+ 2% Al+1% Si

Constantan -aliaj 55%Cu+45%Ni

Termocuplurile sunt ieftine pot acoperi gama de temperaturi -265°C pana la 2300°C cu o precizie dependenta de tipul materialelor folosite la constructia lor.

Dintre senzorii cu care temperatura se masoara direct, termocuplurile acopera cel mai larg domeniu de temperaturi. Ele au un raspuns destul de rapid la variatiile de temperatura dar au o acuratete mai mica decat a termometrelor cu rezistenta metalica.

Materialele pentru termocupluri ce au la bazala baza platina sunt cele mai stabile. Ele au un domeniu de temperatura util pornind de la temperatura mediului ambiant pana la 2000°C, dae semnalul lor de iesire este mic in raport cu termocuplurile ce au la baza alte materiale.

În figura 2.10 sunt prezentate caracteristicile electrice ale diferitelor tipuri de termocupluri, utilizand notatia internationala.

Fig. 2.10 Caracteristicile electrice ale tipurilor de termocupluri.

Circuitul de masura. Pentru realizarea unui sistem de masurare a temperaturii este necesara de cele mai multe ori prelungirea electrozilor de masura pana in locuri convenabile ce depind de tipul aplicatiei. Prelungirea electrozilor se realizeaza cu conductori de prelungire, care in intervalul -30…100C au aceleasi proprietati termoelectrice ca si electrozii. Cea mai mare problema la masurarea temperaturii cu termocupluri este mentinerea jonctiunii reci la o temperatura constanta, cunoscuta.

O metoda invechita ,ce nu se mai utilizeaza ,de mentinere a jonctiunii de reci la o temperatura constanta era plasarea ei intr-o baie de apa cu gheata aflata la 0oC. Mult mai practica este prezenta metoda compensarii electronice, realizand tensiunea de referinta corespunzatoare temperaturii de 0oC, chiar daca jonctiunea rece este la o alta temperatura. In figura 2.11 este prezentata o schema bloc a unui circuit electronic destinat acestui scop.

Fig.2.11 Schema bloc a unui sistem de măsurare a temperaturii cu

termocuplu ce include un circuit electronic de compensare.

Pentru majoritatea aplicatiilor de masurare de temperaturii este termocuplul se poate cumpara ca un ansamblu sau ca senzor separat. In mod frecvent conductorii termocuplului vor fi introdusi intr-o teaca realizata dintr-un aliaj rezistent la caldura sau dintr-un material refractar,figura 2.12

Fig. 2.12 Termocuplul cu conductorii introdusi intr-o teaca de protectie

O alta forma de constructie presupune utilizarea cablurilor cu izolatie minerala unde conductorii termocuplului sunt introdusi intr-o pulbere minerala inerta, compacta si inconjurati de o captuseala metalica (de exemplu otel inoxidabil sau aliaj pe baza de nichel), formand un ansamblu etansat ermetic, figura 2.13.

Fig. 2.13 Termocuplul cu conductorii introdusi intr-o

pulbere minerala si înconjurati de o captuseala metalica.

Senzorii de termocupluri sunt adesea livrati cu o cutie de conexiuni sau de borne care permite legarea corespunzatoare a restului circuitului termocuplului. Ca o solutie alternativa, termocuplurile pot fi prevazute cu un conector fisa special ai carui pini de conectare sunt realizati din materiale termo-electrice, la fel ca si cei ai conectorului priza pereche, figura 2.14. Conectorii au polaritatea marcata, pentru a realizarea corecta conexiunii.

Figura 2.14 Conexiuni pentru cabluri de extensie termocuplu

Elementele de legatura si transmisie sunt reprezentate de cablurile de extensie si sunt un mod convenabil si relativ economic de a extinde circuitele de termocupluri de la senzor la unitatea de referinta sub forma unor cabluri din fire cu materialele conductorilor similare celor ale senzorului.

Cablurile de extensie se produc in mod uzual in forme convenabile pentru transportul pe distante lungi, cum ar fi cablurile multifilare. La folosirea cablurilor de extensie erorile de imperechere decurgand din temperaturile ridicate din cutiile de conexiuni sunt, de regula, mai mici decat cele care apar la folosirea cablurilor de compensare.

Tehnici de liniarizare a termocuplurilor

Aplicatiile in care temperatura se macoara cu termocupluri trebuie sa transforme tensiunea electromotore generata de acestea in valori ale temperaturii.Datorita faptului ca raspunsul termocuplurilor nu este liniar, in cazul sistemelor de masura ce necesita o precizie ridicata se impune liniarizarea raspunsului termocuplului(caracteristicile tipurilor uzuale de termocupluri sunt prezentate in figura 2.4).

In continuare sunt prezentate metode de liniarizare a unui termocuplu K:

Aproximarea liniara este cea mai simpla metoda de a converti tensiunea generata de termocuplu in valori ale temperaturii.Aceasta se face prin alegerea unui segment de dreapta care aproximeaza cel mai bine raspunsul termocuplului pe domeniul de temperaturi ce prezinta interes.

Tabele de valori contin valorile temperaturii pentru tensiunile generate de termocuplu.Un inconvenient al alcestei metode este ocuparea unui spatiu mare din memoria microprocesorului in cazul in care avem un domeniu larg de variatie a temperaturii.Pentru micsorarea dimensiunilor tabelelor se pot combina cu aproximarea liniara pe intervalele unde se poate obtine precizia necesara ,iar pentru restul domeniului se vor construi tabele de valori.

Coeficienti polinomiali aproximarea raspunsului termocuplului se face cu ajutorul coeficientilor prezentati in tabelul 2.3

Tabelul 2.3

Temperatura se va calcula cu relatia:

, unde E este tensiunea generata de termocuplu , E=[µV]

Microcontrollerul PIC 18F2520

PIC18F252 este un microcontroler pe 8 biti produs de Microchip cu noua tehnologie nanoWatt pentru a asigura un consum redus de energie.(curent standby: < 100 nA la 2.0, 11 μA la 32 kHz/ 2.0 V si 220 μA la 4 MHz / 2.0 V

Caracteristicile microcontrolerului:

Optional set de instructiuni extins ce se poate activa/dezactiva din configuratia microprocesorului, acesta a fost introdus pentru optimizarea lucrului cu coduri sursa dezvoltate in limbaj C

Frecventa maxima de operare: 40 MHz

Prezinta un multiplicator al frecventei de lucru astfel putandu-se obtine frecvente de lucru intre 31KHz si 32MHz cu oscilator intern si pana la 40MHz cu oscilator extern

Prezinta mai multe surse de intreruperi si o stiva cu 31 nivele

Prin folosirea unui “bootloader” este posibila crearea unei aplicatii care sa isi modifice singura softul

Poate opera in domeniul de tensiuni 2.0V – 5.5V

Are o memorie performanta:

Flash rezistent la 100.000 de scrieri

EEPROM rezistent la 1.000.000 de scrieri

Stocate date pana la 100 ani

Prezinta 25 de pini I/O programabili individual

Se poate programa in circuit (ICSP) folosind 2 pini

Convertor analog/digital: rezoluție de 10 biti /10 canale analogice

Transmițător/Receptor Sincron/Asincron Universal (AUSART)

Două module CCP (Stocare, Comparare, PWM)

Stocare pe 16 biti

Comparare pe 16 biti

PWM pe 10 biti

Organizarea memoriei

PIC18F2520 are un numarator de program(program counter) pe 21biti capabil să adreseze o memorie de program de 2 Mbyti. Vectorul de Reset se afla la adresa 0000h iar vectoruii de intrerupere la adresele 0008h si 0018h .

Memoria de date la microcontrolerele din familia PIC18 este implementata ca RAM static. Fiecare registru al memoriei de date are o adresa de 12 biti permitand accesarea a 4096 byti de memorie. Memoria este impartita in 16 bank-uri care contin fiecare cate 256 byti. Memoria de date contine registrele cu functii speciale(SFR) si registrele cu functii de uz general(GPR).

Pentru ca registrele GPR si SFR sa poata fi accesate intr-un ciclu microcontrolerele din familia PIC18 au implementat un bank de acces ce reprezinta un spatiu de memorie cu dimensiunea de 256 byti care ofera accesul rapid la registrele SFR si la portiunea inferioara a registrelor GPR din bank-ul 0 fara a folosi registrul de selectie a bank-urilor(BSR).

PIC18F2520 are o stiva cu adancime de 31 nivele si o lătime de 21 biti implementata hardware. Stiva se comporta ca o memorie circulara adica dupa ce s-au introdus 31 elemente in stiva urmatoarea scriere se va face peste prima valoare introdusa.Microcontrolerul folosit poseda functia de resetare la suprascrierea stivei.

Figura 2.15 Memoria de program

Memoria EEPROM

Memoria EEPROM este o memorie nevolatila , separata de memoria RAM si memoria de program , in general folosita pentru sotocarea datelor din program. Ea poate fi accesata indirect prin intermediul urmatoarelor registre cu functie speciala: EECON1, EECON2, EEDATA, EEADR .

Datele din EEPROM permit scriere si citire. In timpul accesarii registrul EEDATA va contine datele pentru citire/scriere, iar registrul EEADR va contine adresa locatiei din EEPROM ce urmeaza a fi accesata.Memoria EEPROM permite un numar foarte mare de citiri/scrieri.Timpul de scriere este controlat de un timer intern si poate varia de la un cip la altul sau in functie de temperatura.

Porturile I/O

Microcontrolerul PIC18F2520 include 3 registri PORT pe 8 biti(PORTA, PORTB, PORTC).Fiecarui registru PORT îi corespunde un registru TRIS care permite configurarea fiecarui port ca intrare sau iesire si un registru LAT util pentru operatiile de citire-modificare-scriere asupra pinilor intrare/iesire.

Functiile pinilor portului A pot fi modificate prin setarea corespunzatoare a bitilor din registrii ADCON(pentru configurarea ca si convertoare analog/numerice),CMCON (pentru configurarea comparatoarelor) si CVRCON( pentru configurarea tensiunii de referinta pentru comparatoare).

Pinii portului B au rezistente interne “pull-up” ce pot fi activate/dezactivate prin configurarea corespunzatoare a bitului 7 din registrul INTCON2.Aceste rezistente sunt dezactivate automat in comentul configurarii pinului respectiv ca iesire. Pinul RB3 poate fi configrat cu functia PWM. Patru dintre pinii portului B, respectiv RB4,5,6,7, au implementata functia de intrerupere la modificarea starii. Doar pinii configurati ca intrari pot genera intreruperi.

Pinii portului C sunt multiplexati cu mai multe functii periferice cum ar fi: RC1,2 cu functa PWM, RC4,5,6 cu functii de comunicatie seriala I2C si SPI, iar RC6,7 comunicatie seriala EUSART(RS232).

Modulul oscilator cu sistemul PLL de monitorizare a ceasului

Modulul oscilator oferă o gamă variată de surse de ceas și posibilități de selectare permițând utilizarea microcontrolerului pentru diverse aplicații având o permormanta ridicată și un consum scăzut de energie.

Sursele de ceas pot proveni de la oscilatoare externe, rezonatoare cu cristal de cuart, rezonatoare cermaice si circuite RC. In plus, ceasul de sistem poate fi configurat pentru a folosi unul dintre cele două oscilatoare interne Sursa ceasului de sistem poate fi selectată prin software si poate fi interna sau externa.

Modulul oscilator poate fi configurat într-unul din cele opt moduri de ceas:

ECIO – ceas extern cu I/O pe pinul RA6

LP – mod de lucru pentru consum redus de energie, 32 kHz

XT – rezonator ceramic sau cristal de cuart

HS – rezonator ceramic sau cristal de cuart

HSPLL – rezonator ceramic sau cristal de cuart cu multiplicare 4*FOSC

RC – circuit RC extern cu ieșire FOSC/4 pe pinul RA6

RCIO – circuit RC extern cu I/O pe pinul RA6

INTIO1 – oscilator intern cu ieșire FOSC/4 pe pinul RA6 și I/O pe pinul RA7

INTIO2 – oscilator intern cu I/O pe pinii RA6 si RA7

Selectia sursei de ceas se face configurand bitii de configurare din registrul OSCCON. Ceasul intern poate fi generat de două oscilatoare interne: HFINTOSC – oscilator calibrat de inalta frecventa si LFINTOSC – oscilator necalibrat de frecventa joasa.

Modulele Timer

Microcontrolerul PIC18F2520 dispunde de 4 module Timer/Numarator, ce pot fi folosite in combinatie cu alte periferice disponibile, pentru diverse aplicatii.

Timer0 este un timer/numărător pe 8 biți cu urmatoarele caracteristici:

Registru timer/counter pe 8/16 biți (TMR0)

Divizor anterior de frecventa pe 3 biti programabil

Sursa de ceas interna sau externa programabila

Posibilitate de selectie a frontului de ceas

Intrerupere la depasire

Timer1 este un timer/counter pe 16 biți cu urmatoarele caracteristici:

Sursa de ceas interna sau externa programabila

Divizor anterior de frecventa pe 3 biti programabil

Oscilator LP optional

Mod de operare sincron sau asincron

Poarta timerului 1 poate fi controlata de comparator sau de pinul T1G

Intrerupere la depasire

Poate scoate microcontrolerul din modul de consum redus

Poate fi folosit ca ceas de timp real (RTC) pentru diverse aplicatii

Timer2 este un timer pe 8 biti cu următoarele caracteristici:

Registru timer pe 8 biti (TMR2)

Registru perioada pe 8 biti (PR2)

Generează intrerupere atunci cand TMR2 si PR2 au aceeasi valoare

Divizor anterior de frecventă programabil

Divizor posterior de frecventa programabil

Timer 3 este un timer pe 16 biti cu urmatoarele caracteristici:

Pereche de registri timer/counter totalizand 16 biti (TMR3H:TMR3L)

Sursa de ceas interna sau externa programabila

Resetare la evenimente de tip special CCP(PWM)

Modulul de Stocare/Comparare/PWM (CCP)

Modulul CCP este un periferic care permite utilizatorului sa cronometreze si sa controleze diferite evenimente. In modul stocare se poate masurare durata unui eveniment. Modul comparare permite declansarea unui eveniment extern dupa trecerea unui interval de timp predeterminat. Modul PWM poate genera un semnal cu modulatie in durata a impulsurilor .

Cele două module CCP pot funcționa în moduri diferite iar interacțiunea dintre acestea este prezentata în Tabelul 2.5:

Tabelul 2.5 Moduri de functionare module CPP

Modul PWM.Acest mod genereaza pe pinul CCPx un semnal cu impulsuri modulate în durata. Factorul de umplere, perioada si rezolutia sunt determinate de urmatorii registri:PR2, T2CON, CCPRxL, CCPxCON

Modulul CCP poate produce o ieșire PWM cu o rezoluție de până la 10 biti pe pinul CCPx. Deoarece pinul CCPx este multiplexat cu portul de date, registrul TRIS asociat acestui pin trebuie resetat pentru a activa comanda de iesire.

Figura 2.16 Schema bloc simplificata pentru functionarea CCP în modul PWM.

Iesirea PWM are o perioada și un interval în care iesirea ia valoarea ‘1’ logic. Perioada PWM este specificata în registrul PR2 al Timerului 2. Perioada poate fi calculata folosind urmatoarea ecuație:

unde .

Durata impulsului PWM este specificata prin scrierea unei valori de 10 biți astfel: cei mai semnificativi 8 biti în registrul CCPRxL si cei mai puțin semnificativi 2 biti în registrul CCPxCON pe pozitiile 5 și 4. Registrul CCPRxL si bitii CCPx<1:0>ai registrului CCPxCON pot fi scrisi la orice moment de timp. Durata impulsului PWM nu este scrisa in CCPRxH decat dupa trecerea unei perioade PWM.

Durata impulsului PWM poate fi calculata cu următoare formula:

Factorul de umplere poate fi calculat cu următoarea formula:

Registrul TMR2 pe 8 biti este concatenat cu 2 biti de la ceasul de sistem sau de la divizor pentru a forma o valoarea pe 10 biti. Atunci cand aceasta valoare pe 10 biti este egala cu valoarea perioadei PWM se reseteaza bitul CCPx.

Figura 2.17 Iesirea CCP în modul PWM.

Rezolutia PWM determina numărul de durate distincte ale impulsului PWM care pot fi selectate pentru o anumita perioada PWM. De exemplu pentru o rezoluție de 10 biti vor rezulta 1024 de durate discrete, iar pentru o rezolutie de 8 biti vor rezulta doar 256 de durate discrete.

Rezoluția PWM maximă este de 10 biți atunci când PR2 ia valoarea 255. Rezoluția este o functie care depinde de valoarea registrului PR2 conform urmatoarei ecuatii:

In cazul In care durata impulsului este mai mare decat perioada, iesirea PWM va ramane neschimbata.

Encoderul de pozitie incremental

Encoderele incrementale de pozitie produc iesiri ciclice doar atunci cand sunt rotite. Ele pot fi mecanice sau optice. Cele mecanice impun implementarea in software-ul ce interpreteaza semnalele transmise de ele a unei modalitati de eliminare a succesiunii impulsuri “false” ce se produc la cuplarea contactelor mecanice (tehnica numita debouncing) si se folosesc adesea in componente electrocasnice ( controlul volumului la ecipamente audio) ce nu folosesc viteze de rotatie mari.

Encoderele rotative incrementale sunt cel mai des folosite datorita costului redus si a posibilitatii lor de a genera semnale ce pot fi usor interpretate in aplicatiile ce calculeaza viteza de rotatie sau pozitia unghiulara. Se pot procura encodere incrementale cu pana la 10000 imulsuri pe rotatie.

Optional aceste encodere pot prezenta si o a treia iesire de referinta sau index ce genereaza un impuls pe rotatie, impuls folosit acolo unde este necesara o referinta cum ar fi sistemele de pozitionare(de obicei aceasta iesire este notata Z).

Encoderele optice se folosesc in aplicatii cu un grad de precizie mai ridicat sau acolo unde sunt actionate cu viteze mari de rotatie.

Encoderele incrementale prezinta doua iesiri A si B,care sunt numite si iesiri quadratura deoarece produc impulsuri decalate cu 90 grade.Tabelul 2.6 prezinta starea logica a iesirilor pentru fiecare dintre cele patru faze, iar in figura 2.18 sunt prezentate formele semnalului de la iesirea encoderului

Tabelul 2.6 Starea iesirilor encoderului

Fig.2.18 Forma semnalului la iesirea encoderului

Semnalele generate de encoder iau valori conform codului “Gray”(Frank Gray), cod binar in care doua valori succesive difera doar prin valoarea unui singur bit. Semnalele pot fi decodificate in soft astfel incat se pot determina sensul de rotatie al encoderului si astfel se stie daca trebuie incrementata sau decrementata o valoare.

Daca encoderul este rotit cu viteza prea mare el poate genera o tranzitie invalida a iesirilor cum ar fi 00 → 11.In acest moment nu se pate determina in ce directie a fost rotit encoderul. Daca se continua cu cresterea vitezei de rotatie se pot genera erori de inversare a sensului de rotatie detectat de aplicatie.

Encoderul folosit in cadrul aplicatiei de fata este eun encoder mecanic cu détente,cu 24 de impulsuri pe rotatie produs de firma Alps(figura 2.19).

Fig.2.19 Encoder mecanic Alps

Amplificatorul operational AD8551

Amplificatorul AD8551 a fost ales datorita performantelor deosebite pe care le poate conferi partii de amplificare a semnalului de valoare mica generat de termocuplu. Conform recomandarilor producatorului el poate fi folosit in aplicatii ce nu pot tolera erori mari cum ar fi echipamentele medicale, instrumente de masura a temperaturii cu termocuplu, etc.

Cateva dintre specificatiile din fisierul de catalog al acestuia sunt prezentate in continuare:

tensiune offset – 1µV

variatie tensiune offset cu temperatura – 0.005 µV/°C

nu necesita alimentare simetrica

tensiune de alimentare 2.7-5V

posibilitatea iesirii/iesirii de a lua valorile tensiunii de alimentare (rail to rail opamp)

curent bias al intrarii foarte mic 20pA

curent mic consumat 700µA

timp recuperare la suprasarcina 50µs

factor de rejectie de mod comun 130dB

factorul de rejecție a tensiunii de alimentare 130dB

Amplificatorul este un amplificator realizat in tehnologie CMOS ce foloseste topologia auto-zero(figura 2.20) cea care ii premite sa isi mentina offset-ul mic in timp si intr-o plaja larga de temperaturi. Este alcatuit din doua amplificatoare operationale unul principal si unul secundar folosit pentru corectarea tensiunii de offset. Gama larga a tensiunilor de iesire este obtinuta prin folosirea in elajul de iesire a doua tranzistoare in configuratie sursa-comuna.

Fig. 2.20 Amplificator operational in tpologie auto-zero

O varianta de amplificator pentru termocuplu K cu compensarea hardware a jonctiunii reci (figura 2.21) este oferita si in foaia de catalog a amplificatorului operational. Un inconvenient al folosirii acestei solutii ar fi lipsa valorilor standardizate pentru rezistentele din cadrul schemei, o metoda mai simpla fiind folosirea a doua convertoare analog-numerice si efectuarea compensarii in soft.

Figura 2.21 Amplificator termocuplu cu AD8551

Convertorul analog-digital MCP3202

Acest convertor a fost ales pentru rezolutia mai mare (12 biti) fata de cea a convertoarelor integrate ale microcontrolerului PIC(10 biti) si pentru interfata de comunicatie seriala SPI.

Convertorul MCP3202(figura2.22) este un convertor cu rezolutia de 12 biti ce realizeaza conversia prin apoximari succesive.

Fig. 2.22 Convertorul analog numeric MCP3202

Convertorul MCP3202 poate atinge o rata esantionare de 100ksps(100000 de esantioane pe secunda) la alimentarea in 5V si de 50ksps la alimentarea cu 2.7V.

MCP3202 poate functiona cu intrarile in configuratie pseudodiferentiala sau doua intrari separate(single-ended).Configurarea intrarilor si selectia canalul se face conform tabelului 2.7 ce arata valorile bitilor transmisi de micocontroller inaintea conversiei.

Tabelul 2.7

Comunicatia cu circuitul MCP3202 se poate face in prin intermediu protocolului SPI in doua moduri:

MSB first ce presupune transmiterea datelor incepand cu cel mai semnificativ bit al conversiei

LSB first ce presupune transmiterea datelor incepand cu cel mai putin semnificativ bit al conversiei (in acest mod de transmitere a datelor se poate ajunge dupa transmiterea in format MSB daca este mentinut semnalul de ceas CLK si cel de selectie a cipului CS).

In figura urmatoare este prezentata o schema (din foaia de catalog) de filtrare a semnalului pentru convertorul analog/numeric MCP3202

Fig. 2.23 Filtrarea semnalului pentru convertor

Afisajul alfanumenic RC1602D

Acest display, este compatibil HD44780 si a fost ales datorita pretului relativ mic si a posibilitatii de implementare usoara a unor rutine pentru afisare, compilatorul folosit (PicBasic PRO) avand incluse comenzi special destinate pentru comanda acestui tip de afisaj.

Fig. 2.24 Afisajul alfanumeric RC1602D

Display-ul poseda o interfata de comunicatie paralela ce poate fi setata pentru 4 sau 8 linii de comunicatie prin declararea corespunzatoare a afisajului in programul microcontrolerului. Semnificatia fiecarui pin al acestuia este prezentata in tabelul 2.8.

Tabelul 2.8 Functiile pinilor afisajului RC1602D

Proiectarea schemei electrice

Introducere

Proiectul a fost realizat pornind de la stabilirea configuratia partii analogice care a dus la alegerea unei configuratii a partii digitale care sa corespunada celei dintai . In prima faza am hotarat asupra compensarii jonctiunii reci in software masurarea temperaturii acesteia urmand a se face cu senzorul de temperatura integrat LM35, apoi am ales amplificatorul oprerational AD8551( pentru performantele sale). Datorita compensarii jonctiunii reci in soft a fost necesara folosirea unui convertor analog-digital cu doua canale(MCP3202), alegerea tipului de microcontroler nu a fost determinata doar de necesitatile proiectului ci si disponibilitatea lui ca piesa ramasa de la alte proiecte anterioare.

Realizarea schemei electronice sa facut cu programul Proteus ce permite si efectuarea de simulari in timp real a functionarii. Programul pentru microcontrollerul PIC18f2520 a fost scris in limbajul Basic folosind programul MicroCode Studio care este conceput special pentru a lucra cu compilatorul PicBasic Pro.

Sistemul de reglaj al temperaturii are următoarele funcții:

Reglează automat temperatura elementului de incalzire prin comanda in PWM cu factorul de umplere determinat de un algoritm PID

Permite modificarea si salvarea in EEPROM parametrilor regulatorului PID

Parametrii regulatorului, setarea temperaturii, pornirea/oprirea sistemului se fac prin intermediul unui encoder rotativ prevazut ci cu un “push botton”

Măsoară temperatura varfului de lipire a ciocanului de lipit cu un termocuplu tip k

Realizeaza compensarea jonctiunii reci cu un senzor integrat pozitionat in contact cu conectorul ciocanului de lipit

Afișarea temperaturii curente/setate precum si a parametrilor PID-ului se face pe un display alfanumeric 16×2

Fig.3.1 Diagrama sistemului de reglaj automat a temperaturii

Realizarea schemei electrice

Schema electrica a fost realizata si simulata in programul Proteus ISIS si este prezentata in totalitale in ANEXA 2.

Circuitul de amplificare

Pornind de la necesitatea amplificarii semnalului furnizat de termocuplul tip K si compensarea jonctiunii reci in programul microcontrolerului am ajuns la configuratia partii de amplificare a termocuplului prezentata in figura 3.2. Conform calculului erorilor de masurare efectuate in tabelul din ANEXA I s-a gasit convenabil a se folosi o amplificare de 195,4V/V. In urma acestei amplificari, a aproximarilor convertorului analog/digital si ale microprocesorului rezulta o eroare de maxima +/- 2°C generata de variatia coeficientului Seebeck al termocuplului, eroare admisibila pentru procesul reglat.

Fig. 3.2 Schema amplificatorului semnalului de la termocuplu

Rezistentele R6 si R7 controleaza factorul de amplificare al amplificatorului operational.Rezistenta variabila RV2 a fost introdusa cu scopul de a putea regla, intr-o mica masura, amplificarea montajului.Calculul amplificarii s-a efectuat cu urmatoarea formula: , obtinandu-se o amplificare minima cu valoarea 193,3 pentru si amplificarea maxima cu valoarea de 201 pentru .

Rolul filtrelor trece jos R3/C3 si R8/C1 sunt de a micsora influenta semnalelor parazite cu frecventa mare(20KHz ce pot aparea la comutatia elementului de incalzire) ce ar putea introduce erori de masurare. Dioda D5 este inseriata in circuit cu scopul de a reduce tensiunea de alimentare a amplificatorului operational astfel incat tensiunea maxima generata de acesta sa nu depaseasca limitele admise la intrarea convertorului analog/digital ce a fost alimentat de la o sursa de tensiune de referinta de 4.096V.

Rezistenta R4 genereaza o tensiune de iesire maxima a amplificatorului operational in cazul intreruperii termocuplului. Astfel vom genera interpretarea de catre microcontroler a atingerii unei valori a temperaturii actuale mai mari decat valorile ce pot fi setate, si in consecinta comanda regulatorului va deveni 0 oferind astfel un mijloc de protectie a elementului de incalzire a ciocanului de lipit.

In figura 3.3 este prezentata simularea in Proteus a raspunsului in frecventa pentru schema de amplificare aleasa, iar in figura 3.4 este simulata functionarea amplificatorului cu un termocuplu cuplat la intrare.

Fig. 3.3 Variatia factorului de amplificare functie de frecventa

Fig. 3.4 Simularea functionarii amplificatorului

Conectarea perifericelor la microcontroller

Conectarea perifericelor la microcontrolerul PIC18F2520 s-a realizat conform schemei din figura 3.5.

Fig.3.5

Convertorul analog numeric

Convertorul analog numeric MCP3202 a fost alimentat din sursa de tensiune de referinta MCP1541 ce prouce la iesire o tensiune de 4096mV. Aceasta sursa de tensiune a fost aleasa in mod convenabil astfel incat codul digital generat de convertorul analog/numeric sa reprezinte valoarea in milivolti a tensiunii aplicate la intrarile analogice.

unde: VIN este tensiunea aplicata la intrarea analogica, iar VDD tensiunea de alimentare a circuitului MCP3202 care reprezinta si tensiunea de referinta pentru conversie.

Comunicatia intre convertorul analog/numeric si microcontroler se face prin intermediul interfetei seriale SPI(Serial Peripheral Interface) a convertorului. In figura 3.6 este prezentat rezultatul simularii comunicatiei intre convertor si microprocesor pentru o tensiune de 2V pe canalul 0 si o tensiune de 1V pe canalul 1.

Fig.3.6 Simularea comunicatiei seriale SPI

Formele de unda din figura reprezinta:

galben reprezinta forma semnalului de ceas(CLK);dupa cum se poate observa exista patru trenuri de impulsuri ale semnalului de ceas, primele doua reprezentand semnalul CLK pentru pentru conversia primei intrari iar celelalte semnalul pentru conversia celei de-a doua intrari;

albastru reprezinta forma semnalului de date transmis de microcontroler catre convertor (DataIN)-bitii de configuratie a convertorului si cel de activare a conversiei;

visiniu reprezinta forma semnalului de date transmis de convertor catre microcontroler (DataOUT)-este reprezentarea in biti a valorii semnalelor aplicate la intrari;

verde reprezinta forma semnalului de activare a convertorului (CS-chip select);activarea se face cu un semnal logic 0

Afisajul alfanumeric

Afisajul alfanumeric a fost conectat la microcontroler in modul de comunicatie 4 biti folosind pinii de date D4, D5, D6, D7, ceilalti pini de date conectandu-se la masa. Acest mod de conectare a fost ales pentru reducerea numarului de pini ai microcontrolerului ocupati de comunicatia cu afisajul.

Pinul R/W ce determina daca citim sau scriem date a fost legat in mod convenabil la masa datorita faptului ca aplicatia nu necesita decat scrierea datelor. Pinii E (enable) si RS (register select) activeaza comunicatia microprocesorului cu afisajul, respectiv detemina daca datele transmise sunt instructiuni sau caractere.

Pe intrarea VEE a afisajului este aplicata o tensiune continua, ce poate fi modificata prin intermediul rezistentei variabile RV1. Valoarea acestei tensiuni determina contrastul afisajului.

Encoderul rotativ

Encoderul rotativ a fost conectat cu iesirile la pinii RB4 respectiv RB5 ai microcontrolerului, iar iesirea de la butonul fara retinere incorporat s-a conectat la pinul RC0 si la releul bistabil ce comanda alimentarea montajului. Releul bistabil este cablat in asa fel incat bobina ce determina inchiderea circuitului de alimentare este alimentata la apasarea butonului de pe encoder, iar bobina ce determina deschiderea circuitului este alimentata de microcontroler prin intermediul unui tranzistor MOSFET cu comanda de nivel logic.

Simularea functionarii encoderului incremental este prezentata in figura urmatoare:

Fig. 3.7 Semnalele generate de encoder

Functiile encoderului impreuna cu butonul incorporat sunt:

Pornirea si oprirea regulatorului (la oprire setarile regulatorului si temperatura setata sunt salvate in EEPROM)

Modificarea temperaturii setate

Modificarea parametrilor regulatorului

Conectorul ICSP

Acest conector cu 5 pini este prevazut in schema pentru programarea/reprogramarea in circuit a microcontrolerului. Pinul 1 al acestuia este conectat la pinul MCLR/VPP al microprocesorului ce necesita o tensiune de aproximativ 12V in timpul programarii, pinii 2 si 3 sunt conectati la alimentarea microcontrollerului,iar pinii 4 si 5 la pinii RB6,RB7 ce sunt intrari pentru semnalul de ceas respectiv date in timpul programarii.

Comanda elementului de incalzire

Datorita comandarii in PWM a elementului de incalzire s-a ales pentru simplitate un tranzistor MOSFET ce poate fi comandat cu un semnal de nivel logic. Frecventa semnalului PWM s-a alesa in afara spectrului audio (20KHz) penrtu a evita producerea de zgomot la comutatia rezistentei de incalzire. Folosirea acestui sistem de comanda poate semnale parazite (prin inductia in conductorii termocuplului) la intrarea amplificatorului operational.

Comanda tranzistorului este preluata de la pinul RC1 al microcontrolerului ce genereaza semnalul PWM cu latimea impulsului calculata de algoritmul PID incorporat. Rezistenta R2 are rolul de limitare a curentului .

Fig. 3.8 Circuitul de comanda al elementului incalzire

Realizarea cablajului

Cablajul (figura 3.10) a fost proiectat programul Proteus ARES care permite proiectarea cablajelor cu pana la 14 straturi si poate exporta fisierele necesare pentru realizarea fizica a cablajelor in regim industrial. Cablajul s-a realizat in regim casnic prin metoda transferului de toner si corodare in baie de clorura ferica. Datorita realizarii placii intr-un singur strat a fost necesara realocarea functiilor pinilor microcontrolerului, in cateva randuri, pentru simplificarea cablajului reducerea numarului de strapuri folosite.

Functia 3D View a acestui program permite vizualizarea modelului 3D al placii de cablaj cu componentele amplasate(figura 3.9) .

Fig.3.9 Modelul 3D al montajului

Fig.3.10 Cablajul montajului

Realizarea programului pentru microcontroller

Introducere

Programul microcontrolerlui a fost realizat folosind limbajul Basic si mediul de dezvoltare MicroCode Studio si este prezentat in ANEXA III . Pentru incarcarea fisierului hex in memoria microcontrolerului PIC18F2520 am folosit o clona a programatorului PicKitt 2.

Structura programului este prezentata in figura urmatoare:

Fig.4.1 Structura programului din microcontroler

Descrierea programului

Initializarea microprocesorului

La initializare se doreste in primul rand setarea bitilor de configuratie ai microcontrolerului:

setarea confiuratiei oscilatorului

activarea/dezactivarea timerului watchdog (WDT)

activarea/dezactivarea timerului de pornire (PWRT)

configurarea iesirii PWM pentru selectia PORTB sau PORTC

dezactivarea setului extins de instructiuni (pentru compatibilitatea lucrului cu programe compilate de PicBasic Pro)

In continuare se vor dezactiva modulele de conversie analog digitale, care nu se vor folosi in cazu de fata, prin stergerea bitilor din registrul ADCON0 si setarea bitilor <0:4> din registrul ADCON1. Se vor activa rezistentele pull-up ale portului B, se vor activa intreruperile generate de timerul 0 ce se vor folosi pentru stabilirea ratei de esantionare. In cadrul programului din ANEXA III vor fi prezentate si cateva configuratii ale registrului T0CON(ca si comentarii), ce determina timpul necesar pentru producerea intreruperii.

Bineinteles se vor configura si pinii porturilor A, B si C conform conectarii perifericelor la microcontroler.

Inainte de inceperea programului propriuzis se vor declara si initializa toate variabilele ce urmeaza a fi folosite in cadrul programului. Prin declararea acestora se va stabili modul de conectare al display-ului, al encoderului, al convertorului analog/numeric si nu in ultimul rand valorile parametrilor algoritmului PID.

Descrierea subrutinelor principale

Rutina “Main” nu face nimic altceva in afara de a verifica starea butonului fara retinere (daca a fost apasat sau nu) si a encoderului (daca s-a rotit sau nu). In cazul in care encoderul a fost rotit programul va executa (de 500 ori) subrutina “Temp” care determina sensul de rotatie al encoderului, va incrementa sau decrementa si afisa valoarea temperaturii setate dupa care va reveni in rutina ”Main”.

La apasarea butonului programul va executa subrutina “Menu_sel”, din care prin incrementarea unei variabile (menu) se vor alege spre executie una din subrutinele de modificare a parametrilor algoritmului PID sau cea de salvare a setarilor si opririi microcontrolerului.

Fiecare dintre subrutinele de modificare a parametrilor verifica daca este apasat butonul. In cazul in care este rotit encoderul acestea vor determina sensul de rotatie si vor mari sau micsora valoarea parametrului respectiv, dupa care vor actualiza datele afisate pe display.Apasarea butonului fara retinere va determina incrementarea variabilei “menu” si implicit trecerea la reglarea urmatorului parametru.

La depasirea de catre valorea variabilei “menu” a unei valori dependente de numarul de submeniuri create, variabila “ menu” va fi resetata , iar programul se va intoarce la executia rutinei ”Main”.

In cazul in care timerul 0 a generat o intrerupere, programul va trece la executia subrutinei “Read_ADC”, in cadrul careia citeste valorile binare ale tensinilor genarate de senzorul LM35 si amplificatorul operational AD8551. Urmeaza calcularea temperaturii din valorile binare ale acestor tensiuni cu urmatoarea relatie:

unde: act_temp – temperatura actuala calculata, mcpresult1 si mcpresult0 – valoarile binare a tensiunilor aplicate la intrarile circuitului MCP3202.

La intrarea 1 a convertorului analog/numeric MCP3202 avem conectat senzorul LM35, iar la intrarea 0 avem conectat amplificatorul AD8551 ce amplifica semnalul generat de termocuplu de aproximativ 195 ori.

Alimentand convertorul analog/digital cu o tensiune de referinta de 4096mV vom obtine o rezolutie de 1mV/bit.

Impartirea rezultatului conversiei canalului 1 s-a facut la 10 stiind ca senzorul LM35 genereaza o tensiune de 10mV/°C.

Rezultatul conversiei canalului 0 s-a impartit la 8 pentru obtinerea valorii temperaturii termocuplului, stiind ca semnalul termocuplului este amplificat de 195.4 ori si se va obtine o variatie de aproximativ 8mV/°C la intrarea acestui canal.

Eroarea necesara pentru calculul componentelor proportionala, integrala si derivativa se obtine din diferenta intre temperatura setata si temperatura actuala masurata:

Dupa calcularea erorii programul va trece la executia rutinei “PID” unde se vor calcula cele trei componente ale algoritmului PID.Valoarea maxima a componentei integrale si a iesirii PID-ului se vor putea limita prin alocarea valorilor maxime variabilelor ”pid_I_Clamp” respectiv “pid_out_clamp”.Valorile maxime ce se vor putea aloca pentru aceste variabile vor fi 255 pentru PWM cu rezolutia de 8 biti, respectiv 1023 pentru reolutie PWM de 10 biti.

In cazul in care la iesirea algoritmului PID vom obtine o valoare negativa ( daca este setat bitul 15 al variabilei “pid_out”) atunci valoarea iesirii va fi setata la 0 oprind astfel comanda elementului de incalzire.

Dupa finalizarea rutinei PID se va actualiza valoarea temperaturii pe afisajul numeric, se va modifica corespunzator valoarea factorului de umplere al PWM-ului, si se va relua programul de unde a ramas in momentul producerii intreruperii.

Rezultate experimentale

Introducere

Datorita pozitionarii termocuplului la interiorul varfului ciocanului de lipit si nu la exterior in contact direct cu zona de lucru, a fost necesara masurarea temperaturii in zona de lucru cu un alt aparat de masura.(Fluke 87V si termocuplu K;figura 5.1). Pentru verificarea semnalului la intrarea si iesirea amplificatorului operational, precum si pentru determinarea raspunsului partii fixate a procesului s-a folosit osciloscopul Rigol DS1052 (figura 5.2).

Fig. 5.1 Fluke87v Fig.5.2 Osciloscop Rigol DS1052

Masurarea temperaturii reale

In urma masuratorilor s-a construit urmatorul tabel(5.1) ce prezinta valorile temperaturii afisate de montajul construit si cele afisate de Fluke:

Tabelul 5.1

In figurile 5.3 si 5.4 sunt prezentate semnalele parazite de la intrarea si iesirea amplificatorului operational produse de comutatia elementului de incalzire cu o frcventa de 20KHz .

Fig. 5.3 Semnalul parazit la intrarea amplificatorului operational

Fig.5.4 Semnalul parazit atenuat la iesirea operationalului

Dupa cum se poate observa din imaginile de mai sus montajul realizat poate produce erori de masurare de aproximativ +1ºC sau -2ºC in cazul citirii temperaturii pe unul dintre semnalele parazite pozitive respectiv negative (acestea sunt rezultatele dupa aplicarea filtrului ce urmeaza a fi prezentat).

Zgomotul provocat de comutatia elementului de incalzire a fost redus prin folosirea unui filtru RC conectat intre drena si sursa tranzistorului MOSFET de comanda. In figurile 5.5 si 5.6 este evidentiat efectul acestui filtru asupra zgomotului produs la comutatie.

Fig. 5.5 Semnalul PWM fara filtru RC

Fig. 5.6 Semnalul PWM cu filtru RC

Acordarea regulatorului

Acordarea regulatorului se va face in scopul obtinerii unui raspuns cat mai rapid la actiunea perturbatiilor (efectuarea lipiturilor).

Pentru determinarea timpului mort al sistemului s-a folosit osciloscopul si aplicarea comenzii maxime pentru elementul de incalzire,obtinandu-se graficul din figura 5.7. Prin setarea primului cursor in momentul aplicarii comenzii si a celui de-al doilea la aparitia modificarii semnalului se obtine un timp mort cu valoarea de 3 secunde.

Tinand cont de recomandarea T ≈ (0.3 … 1)τ, am programat registrul TMRO al microcontrolerului cu valoarea binara 10000101 in scopul generarii de intreruperi la un interval de 1.04 secunde. In momentul intreruperii va fi executata operatia de citire a temperaturii, urmand calculul si modificarea comenzii.

Fig. 5.7 Determinarea timpului mort cu osciloscopul

Pentru acordarea regulatorului s-a folosit metoda Ziegler–Nichols:

s-au setat Ki=0 si Kd=0

s-a marit Kp panala 30 cand sistemul a inceput sa produca oscilatii sustinute dupa cum se poate observa in figura 5.8 ;(Klim=30)

s-a determinat perioada oscilatiilor(este masurata de osciloscop) si s-a notat Tlim=19.2 secunde

De aici se vor determina cu relatiile prezentate in sinteza teoretica Kp, Ki si Kd.

Fig. 5.7 Oscilatii sustinute pentru Kp=30

Pentru valorile constantelor proportionala, derivativa si integrala de mai sus s-au obtinut urmatoarele raspunsuri ale sistemului:

Fig. 5.8 Raspunsul la schimbare setpoint de la 40 la 195°C

Fig. 5.9 Raspunsul la schimbare setpoint de la 40 la 300°C

Fig. 5.10 Raspunsul la schimbare setpoint de la 300 la 400°C

Concluzii

Regulatoatoarele PID se folosesc in majoritatea aplicatiilor industriale, insa costul unui regulator industrial este relativ ridicat. Prin prezentul proiect am incercat a realiza un sistem de reglare a temperaturii pentru o statie de lipit, cu costuri cat mai mici, dar care sa ofere performate similare cu cele a unei statii de lipit profesionale.

Abordarea controlului elementului de incalzire cu PWM nu pare a fi cea mai inspirata alegere, datorita faptului ca zgomotele de comutatie mi-au produs cateva dificultati la citirea temperaturii, insa acestea probleme au fost rezolvate prin folosirea filtrelor RC la intrarea si iesirea amplificatorului operational impreuna cu un circuit “snubber”(disipator RC) pentru elementul de comutatie.

De la bun inceput mi-am dorit realizarea unui sistem ai carui parametri si comenzi se pot regla prin intermediul unui encoder incremental prevazut si cu un buton fara retinere. Am reusit crearea unor submeniuri pentru reglarea parametrilor regulatorului, ce se pot accesa prin apasarea butonului si incrementa respectiv decrementa la rotirea acestuia. Rotirea encoderului in momentul in care ne aflam in meniul principal determina modificarea temperaturii setate si revine automat in meniul principal dupa un interval de timp.

Dupa cum se poate observa din tabelul 5.1, care prezinta temperaturile indicate de catre sistemul realizat si cele indicate de multimetrul Fluke, se poate considera ca partea de masurare a temperaturii intocmeste cerintele impuse.

Despre partea de regulator, de asemenea, se poate afirma ca indeplineste cerintele impuse pentru o statie de lipit asigurand atingerea temperaturii de lipire (300ºC) in aproximativ 60 secunde si in acelasi timp fara a genera supradepasiri mari.

Pentru viitor mi-am propus o abordare diferita a partii de comanda: elementul de incalzire alimentat in curent alternativ, o comanda acestuia urmand a se realiza cu un triac, folosirea separarii galvanice cu optotriac, detectia trecereii prin 0 a tensiunii de catre microcontroler si alimentarea rezistentei de incalzire pe o portiune a sinusoidei (timpul de alimentare a rezistentei se va determina tot cu un algoritm PID).

Se poate considera ca obiectivul proiectului a fost indeplinit sistemul realizat avand comportarea dorita.

Bibliografie

[1] Parallax, ”Process control”,Student guide

http://www.parallax.com/sites/default/files/downloads/122-28176-Process-Control-Text-v1.0.pdf

Bibliografie

[1] Parallax, ”Process control”,Student guide

http://www.parallax.com/sites/default/files/downloads/122-28176-Process-Control-Text-v1.0.pdf

Similar Posts

  • Modelarea Masinii DE Curent Continuu CU Excitatie Serie

    === motorul === Generalități Capitolul 1: Construcția mașinii de curent continuu 1.1. Părți componente și materiale utilizate 1.2. Simbolizare Capitolul 2: Pornirea și funcționarea 2.1. Punerea în funcțiune 2.2. Inversarea sensului de rotație Capitolul 3: Reglajul turației 3.1. Reglarea turației prin variația tensiunii U a sursei de alimentare la flux constant 3.2. Reglarea vitezei de…

  • Sistem de Curatat Panourile Solare Bazat pe Platforma Myrio

    CUPRINS Introducere Hardware myRIO Arhitectura FPGA Conectori Lego NXT Servomotoarele NXT Legăturile Caracteristicile mecanice ale motorului PWM Codificatoare Punte H Senzorul Ultrasonic Legăturile Caracteristici Comunicația Senzorul tactil Software Codul FPGA Controlul motoarelor Codificatoare FPGA Real-Time Senzorul ultrasonic Real Time FPGA Senzor tactil Rezultate Introducere Status Actual Preocupați de poluarea mediului și de teama de a…

  • Lucrari Topografice Speciale Pentru Profilul Constructii

    LISTA FIGURILOR Figura 1. Legătura între abateri standard și toleranțe Figura 2. Poziționarea absolută și relativă Figura 3. Schema rețelei în trei trepte Figura 4. Calculul orientării și distanței între două puncte vechi Figura 5. Orientarea stațiilor cu coordonate cunoscute Figura 6. Variația orientării în funcție de variația coordonatelor plane Figura 7. Trasarea unghiurilor orizontale…

  • Generarea Si Corectarea Automata a Unor Teste Grila

    Acronime WPF – Windows Presentation Foundation MVVM – Model – View –ViewModel QR – Quick Response PDF – Portable Document Format BMP – Bitmap JPG –Joint Experts Group XAML –Extensible Application Markup Language XML – Extensible Markup Language GUI – Graphical User Interface CUI – Console User Interface DLL – Dynamic-link library HTML – HyperText…

  • Localizarea Terminalelor Mobile

    CUPRINS LISTA FIGURILOR………………………………………………………………….…….3 LISTA TABELELOR……………………………………………………………………4 Cap.1 INTRODUCERE………………………………………………………………………….5 Cap.2 SERVICII BAZATE PE LOCALIZARE………………………………………7 Cap.3 METODE DE LOCALIZARE……………………………………………………..11 3.1. Considerații generale…………………………………………………………………………11 3.2. Tehnici de localizare………………………………………………………………………….12 3.3 Metode de localizare cu ajutorul senzorilor…………………………………………..19 3.4. Performanțele metodei hibride TOA-AOA…………………………………………..27 3.5 Reducerea erorilor datorate lipsei undei directe……………………………………..32 Cap.4 POZIȚIONAREA TERMINALELOR MOBILE PENTRU SERVICII DEPENDENTE DE LOCALIZAREA ÎN REȚELELE GSM…43 4.1….

  • Constructii din Otel Sudate

    Construcții din otel sudate Prezentul capitol conține condițiile tehnice de calitate pe care trebuie sa la îndeplinească construcțiile din otel sudate folosite in domeniul construcțiilor civile, industriale si agricole si modul de verificare al acestor condiții. Condițiile impuse in prezentul capitol sunt stabilite pentru toți parametrii care pot influenta calitatea pe parcursul realizării construcțiilor, cu…