Melania RACOLȚA (78063) - Reglare debit pompa

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Proiectul consta intr-un sistem ce regleaza automat debitul de curgere a un lichid printr-o pompa DIY, avand scopul final de a umple un recipient pana la un nivel dorit.

Ideea pentru acest proiect a pornit de la dorinta de a construi, folosind ce am invatat la PM, un sistem de reglare automata pentru a aplica cat mai mult din teoria reglarii automate.

Lasand la o parte acest aspect, principiul de functionare al acestui proiect este aplicabil in multiple domenii , prezentand avantaje importante. De exemplu, in diverse instalatii industriale se cer cantitati bine determinate de materiale sau substante sub forma lichida, gazoasa sau granulata. In domeniul medicinei, de exemplu, sunt deja implementate sisteme prin care se regleaza debitul de curgere a substantelor din pungile de perfuzii catre acul intravenos.

Descriere generală

Un sistem cu pompe defineste un proces lent, fara timp mort. La nivelul pompelor apar mereu perturbatii, ceea ce impune reglarea debitului de curgere.

Schema de reglare a debitului este urmatoarea.

In cele ce urmeaza, explicam cum am ajuns la valorile functiei de trasfer a procesului si a regulatorului. Procesul este alcatuit din : instalatie tehnologica (pompa), traductor (debitmetru) si element de executie (motor). Ca in orice alt sistem de reglare, trebuie impuse niste criterii de performanta. Dorim ca de la aplicarea referintei de debit, sistemul sa raspunda in maximum 5 sec (timp_tranzitoriu ⇐6 sec), eroare stationara zero si suprareglaj de 5 %, pentru a nu se defecta motorul.

Debitmetrul este caracterizat printr-un factor K de amplificare . Din datasheet , caracteristica acestuia este liniara. Din ecuatia unei drepte, deducem K = 7.5 . Elementul de executie e caracterizat de :

        a) torque = 4.62 kg*m (forta care da rotatia)
        b) J = 0.01 kg *m^2
        c) L = 0.5 H inductanta
        d) R = 1 ohm
        e) I = 200 mA
        f) constanta K  = torque/I = 3.45
        g) b = 0.1 Nms

Functia de transfer a elementului de execjutie este

H_ee = K/ (Js+ b)* (L*s + R)*K^\2) H_ee = 3.45 /(0.05 *s^2 + 0.5*s + 0.1)

H_ee= 3.45/( (0.01s + 0.1) * (0.5*s + 1) + 3.45)

Functia de transfer a elementului de executie este d eordin 2, cu constanta de timp T = 0.5sec, si o ct parazita T_sigma = 0.01 (cu un ordin de marime mai mica decat T).

Functia de transfer a instalatiei tehnologice este functia de transfer a pompei in sine, caracterizata printr-o constanta de timp mare (proces lent) .

H _it = 0.25/ (40 *s + 1)

Functia de transfer a intregului proces este produsul celor 3 functii de mai sus:

H _p = 6.5/(22*s^2 + 4.5*s + 0.1 )

Pentru acest proces, proiectam folosind metoda poli-zerouri un regulator . Aici intervin mai multe calcule ce nu reprezinta subiectul acestei materii. Ne rezulta un regulator PI cu constanta K_r = 50 sec si constanta de integrare T_i = 0.25 sec

H_R = K_r *(1 + 1/(T_i*s)) H_R = 50(1 + 1/(0,25*s))

Pe microcontroller nu putem implementa acest regulator deoarece este un regulator pentru timp continuu. Vom implementa un regulator numeric folosind transformata Z si metoda raspunsului la impuls, alegand o perioada de esantionare T de 15 ori mai mica decat timpul tranzitoriu(conform metodei).

H_R(1/z) este raportul a doua polinoame , din care ne iese relatia recurenta dintre u_k si e_k - comanda si eroare). in urma calculelor din Matlab, vom pune aceste valori intr-o matrice de comenzi si erori

Hardware Design

Lista piese:

  
    1. Senzor ultrasonic - masor in timp real nivelul lichidului
  
    2. Debitmetru   - masor debitul prin pompa
     
    3. Pompa DIY  - pompa centrifugala construita conform tutorialului atasat la Bibliografie
  
  
    4. ATmega324 - vom implementa regulatorul numeri pt debit
  
    5. Motor 6V  - inclus in constructia pompei
     
    6. L293D     - driver motor pentru a implementa PWM 
    
    7. LCD       -afisarea nivelului si a debitului
    

Pentru a functiona, ultrasonicul are nevoie de un semnal de trigger pe care il vom da pe PA0. Outputul de la pin il vom primi pe PA1 sub forma de pulsuri de anumite frecvente. Frecventa la care functioneaza ultrasonicul este de 40kHz, citind distante cuprinse intre 2 si 300 cm.

Desi driverul se putea face si cu MOSFET, am ales sa utilizez un driver L293D. Comanda pentru motor se face folosind ATmega324 folosind FastPWM prin pinul PD1, corespunzatorul inputului 1A de pe pinul 2 al driverului. Pe pinul PD3 corespunzator celeilalte intrari 2A de pe pinul 7 al driverului vom transmite LOW. Astfel motorul se roteste spre stanga, punand pompa in functiune.

Semnalul de output al debitmetrului este digital cu frecvente cuprinse intre 16 si 32 de Hz. Citim acest output de pe pinul PB5, pin cu care vom face captura de semnale de intrare (Input Capture Mode) ce retine valoarea lui ICR la momentul aparitiei unui eveniment.

Software Design

Ca mediu de dezvoltare am folosit mediul de dezvoltare Atmel , cu compilator AVR GCC. Am folosita libraria pentru senzorul ultrasonic HC-SR04.

Programul de pe microcontroller trebuie sa implementeze algoritmul pentru regulatorul PI. Pentru aceasta, initializez direct din program referinta pentru debit , initializez modulul de PWM ce va genera comanda necesara motorului pompei si citesc iesirea de la debitmetru. Toata acestea se efectueaza daca se respecta conditia ca nivelul citit sa nu depaseasca nivelul impus.

Pentru implementarea legii PI am ales urmatoare metoda de implementare : am creat o mapare 1 la 1 intre elemenele celor 2 randuri ale unei matrici :un rand continand erorile, celalalt comenzile corespunzatoare. Algoritmul va efectua scaderea intre referinta de debit si iesirea debitmetrului . Vom parcurge prima linie a matricei, cautand acea eroare din vector care e cea mai apropiata de eroarea noastra. Vom extrage comanda corespunzatoare, exprimata in volti. Tinand cont ca tensiunea maxima e de 5V iar comanda necesara e x Volti, calculam Duty_cycle-ul dupa formula :

D = 100* x/5

Calculam apoi noua valoare a lui OCR1A pe care o vom folosi in initilizarea timerului pentru PWM.

Rezultate Obţinute

Senzorul ultrasonic citeste bine distantele.

Pompa pe care am facut-o din capace, paie, un fel de moara improvizata si un motor de 6V trage apa prin pai pe o anumita distanta, insa nu reuseste sa o expulzeze tangenmtial intrucat puterea motorului nu e suficient de mare. (produsul U *I)

Driverul de motor imi invarte motorul si intr-un sens si in celalalt. Din pacate, codul pt FPWM pare in regula, dar motorul nu functioneaza..

Concluzii

Partea de hardware a fost relativ lejera.

Motorul de 6V are nevoie de un curent de ordinul sutelor de mA (aprox 300 mA) pentru a avea suficienta putere de suctiune.

Senzorul ultrasonic nu este exact: trebuie tinut cat de perpendicular posibil deplasandu-l inicet. Altfel, va afisa distanta adevarat doar dinc and in cand, afisand in rest doar valori aparent random.

Pentru stabilizarea sistemului, daca cerstem K_R sau scadem T_i, timpul tranzitoriu va scadea.

Filmare: watch

Download

Jurnal

Aprilie : alegerea temei de proiect astfel incat sa integrez ingineria reglarii automate

3 zile din Mai au fost necesare pentru alegerea corecta a tuturor componentelor

22-25 Mai :citesc date de la ultrasonic si debitmetru cu un cod aparent coorect ca algoritm dar nefunctional. In final, am gasit o biblioteca pentru ultrasonic. Urmeaza in vara sa implementez biblioteca pt debitmetru pe acelasi principiu ca cea pentru ultrasonic.

24 Mai: implementarea pe hartie a regulatorului numeric discret

Bibliografie/Resurse

https://www.youtube.com/watch?v=cvtaaaUgleo Constructia pompei

https://www.engineeringtoolbox.com/pumps-power-d_505.html https://www.waterworld.com/articles/print/volume-27/issue-11/departments/pump-tips-techniques/back-to-basics-how-to-increase-pump-motor-efficiency.html

Acest site m-a ajutat sa determin care ar trebui sa fie puterea motorului de 6V astfel incat pompa centrifugala sa poate expulza tangential lichidul.

http://students.iitk.ac.in/eclub/assets/lectures/embedded/Embedded-Old-2.pdf http://www.avrprojects.net/index.php/avr-learn/getting-started-with-avr/51-programming-the-timer-counter-1?showall=1 Baza pentru implementarea initiala a softului de citire a datelor de la ultrasonic si debitmetru.

optimization algorithm to find realistic parameters of a DC motor http://ctms.engin.umich.edu/CTMS/index.php?example=MotorSpeed&section=SystemModelingN

Pentru determinarea functiei de transfer a elementului de executie .

Biblioteca pentru senzorul ultrasonic am gasit-o intr-un alt proiect de pe wiki si e atasata la Downloads.

Datasheets bineinteles.

  • Documentația în format PDF
pm/prj2018/astratulat/melania-racolta.txt · Last modified: 2021/04/14 17:07 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0