Sunteți pe pagina 1din 17

Universitatea VALAHIA din Targovite Facultatea de Inginerie Electric Specializarea Automatica si Informatica Aplicata

PROIECT Compararea regulatorului FUZZY cu un regulator traditional PID


Disciplina: Inteligenta artificiala
Student

Specializarea Automatica si Informatica Aplicata Anul IV

1.

Cuprins

1. Tema proiectului.................................................................................3 2. Regulatorul FUZZY............................................................................4 3. Regulatorul PID..................................................................................7 4. Aplicatie 4.1 4.2 Reglarea nivelului de apa intrun bazin cu ajutorul reglarea nivelului de apa intrun bazin cu ajutorul regulatorului PID..........................................................................8 regulatorului FUZZY....................................................................10 4.3 Crearea regulatorului fuzzy....................................................11 5. Concluzii.............................................................................................16 6. Bibliografie.........................................................................................17

1. Tema proiectului
Se doreste compararea unui regulator clasic PID cu un regulator FUZZY cu ajutorul unei aplicatii in Simulink care sa regleze automat nivelul de apa intr-un bazin la trepte de referinta aleatoare Apa intra in bazin prin orificiul superior care este contolat de un robinet care da debitul de intrare in bazin. La partea inferioara se gaseste un alt robinet care da debitul de iesire din bazin

Nivelul H al apei in bazin se regleaza cu ajutorul celor doi robineti de admisie si de evacuare si este dat de ecuatia diferentiala in functie de timp ca diferenta intre debitul de intrare si iesire din bazin:

unde: vol=volumul de apa in bazin; A=aria sectiuni transversal a bazinului; b=rata debitului de apa care intra in bazin; a=rata debitului de apa care paraseste bazinul; Se doreste crearea unui model de bazin care sa stie nivelul actual in bazin si nivelul de referinta si facand diferenta intre cele doua sa actioneze asupra modelului de robineti care sa poata inchida/deschida cu un debit variabil 3

2 Regulatorul FUZZY
Spre deosebire de logica clasic, care lucreaz cu dou valori numerice exacte (0 pentru fals i 1 pentru adevrat), logica fuzzy folosete o plaj continu de valori logice cuprinse n intervalul 0-1, unde 0 indic falsitatea complet, iar 1 indic adevrul complet. Astfel, dac n logica clasic un obiect poate aparine (1) sau nu (0) unei mulimi date, n logica fuzzy putem defini gradul de apartenen al obiectului la mulime i care poate lua valori ntre 0 i 1. Logica fuzzy ofer instrumentele necesare pentru reprezentarea n sistemele inteligente a unor concepte imprecise cum sunt mare, mic, scump, ieftin .a., concepte numite variabile lingvistice sau variabile fuzzy. Pentru reprezentarea acestora se folosesc seturile fuzzy, care capteaz din punct de vedere cantitativ interpretarea calitativ a termenilor. Una dintre aplicaiile cele mai importante n practic ale sistemelor cu logic fuzzy se refer la folosirea acestora ca i sisteme de control a proceselor. Folosirea sistemelor cu logic fuzzy ca i controllere se bucur de o baz teoretic solid, existnd la ora actual multe aplicaii comerciale care ncorporeaz un sistem de control fuzzy. Toolbox-ul Fuzzy Logic al mediului de simulare Matlab reprezint mediul software de simulare a sistemelor cu logica fuzzy oferit de acest program extrem de popular n lumea tiinific. Construirea unui sistem cu logic fuzzy n Matlab este simpl datorit interfeei grafice prin care utilizatorul poate comunica cu mediul de simulare Matlab (componenta dedicat logicii fuzzy). Aceast interfa permite construirea i, n final, analiza grafic a sistemului cu logic fuzzy dorit, folosind cele 5 instrumente grafice: 1) Editorul sistemului cu logica fuzzy, numit FIS Editor (=Fuzzy Inference System Editor);

2) Editorul funciilor de apartenena, adic, al mulimilor fuzzy peste universurile discursurilor variabilelor de intrare i de ieire ale sistemului cu logic fuzzy, numit Membership Function Editor;

3) Editorul regulilor fuzzy, care vor forma baza de reguli a sistemului cu logica fuzzy, numit Rule Editor;

4) Fereastra de vizualizare a regulilor, n care se poate observa gradul de activare al fiecrei reguli i rezultatul (mulimea fuzzy de ieire) dat de fiecare regul a bazei de reguli, pentru o anumit valoare tranant a intrrii stabilite de ctre utilizator; aceasta fereastra apare sub numele Rule Viewer;

5) Fereastra de vizualizare a suprafetei iesire-intrare a sistemului cu logica fuzzy, care arata grafic dependenta iesirii transante a sistemului cu logica fuzzy de intrarile transante ale sistemului cu logica fuzzy, determinate de functionarea sistemului cu logica fuzzy; aceasta dependenta este cunoscuta n general sub numele de suprafata de control a sistemului, iar fereastra apare sub numele Surface Viewer.

3. Regulatorul Proportional-Integrativ-Derivativ PID

Unde:

Kp=constanta parti proportionale Ki= constanta parti integrative Kd= constanta parti derivative

In practica se foloseste si sub forma de mai jos, reglajul celor trei componente integrativa derivativa si proportionala facandu-se dintr-un singur parametru K

In figura de mai jos se observa efectul fiecarei parti:

Functia de transfer:

Acestea sunt fractii avand ordinul numitorului mai mare decat cel al numaratorului Regulatorul PID este mai precis si mai riguros decat alte regulatoare daca se cunoaste aparatul matematic al sistemului reglat In Simulink se realizeaza cu usurinta datorita controlului PID in care trebuie sa introducem doar coeficienti Kp Ki Kd 7

4. Implementarea in Simulink a modelului


4.1 Reglarea nivelului de apa intrun bazin cu ajutorul regulatorului PID
Se construieste in Simulink urmatorul montaj in bucla inchisa:

Intrarea in sistem este constituita din blocul Random Number

care genereaza numere

aleatoare la un interval de 20 ms sub forma unei unde patrate, apoi se adunata cu o constanta, acestea constituind niveluri aleatoare de apa care se doresc a fi reglate Blocul PID este un subsistem oferit de simulink constituit dintr-un element derivativ, unul integrativ si unul proportional

BloculVALVE este un subsistem care simuleaza comportamentul robinetilor, acesta este compus dintr-un integrator inmultit cu o valoare care da debitul maxim prin robineti

Subsistemul TANK simuleaza comportamentul unui bazin cu o intrare(debitul de apa) si 3 iesiri (debit de iesire din bazin,nivelul de apa actual)

Iesirea din sistem se multiplexeaza cu referinta intr-un vector si se afiseaza pe grafic:

4.2

Reglarea nivelului de apa intrun bazin cu ajutorul regulatorului FUZZY

In acelasi montaj se inlocueste regulatorul PID cu un FLC(fuzzy logic controller), si pe reactie un element derivativ

In Simulink avem avantajul ca avem controlul fuzzy logic controller In care trebuie sa introducem doar numele regulatorului creat in format *.fis

10

4.3 Crearea regulatorului fuzzy:


Pachetul Matlab pune la dispozitie un toolbox specializat numit fuzzy in care se poate proiecta complet, cu usurinta, un regulator fuzzy Din meniul File ->new fis se ccreaza un nou regulator. Aici putem alege daca este de tip Mamdani sau Sugeno si il numim Bazin Din meniul Edit introducem numarul de intrari si iesiri dorite, in cazul nostru: Intrari -nivel - debit Iesiri robineti

Pentru a edita functiile de apartenenta ale intrarilor/iesirilor Edit ->Membership Functions Aici alegem tipul funciei(gaussiana, triunghiulara, trapezoidala etc. ) intervalul fiecarei functii si numele acesteia

11

Pentru a edita reguli Edit -> Rules... Se doreste crearea unui model de bazin care sa stie nivelul actual in bazin si nivelul de referinta si facand diferenta intre cele doua sa actioneze asupra modelului de robineti care sa poata inchida/deschida cu un debit variabil Se pot stabili urmatoarele reguli: 1. If (nivel is bun) then (robineti is neschimbat) 2. If (nivel is scazut) then (robineti is desch.rapid) 3. If (nivel is inalt) then (robineti is inch.rapid) Rulam programul cu acest regulator care se salveaza cu extensia *.fis apoi se introduce in directorul work din matlab pentru a putea fi apelat de catre controllerul de pe interfata

Deoarece suprareglajul este mare si timpul de stabilizare mare raspunsul nu este cel asteptat, in acest caz mai adaugam doua reguli : 4. If (nivel is bun) and (debit is positiv) then (robineti is inch.incet) 5. If (nivel is bun) and (debit is negativ) then (robineti is desch.incet) 12

Raspunsul sistemului:

13

Raspunsul astfel obtinut este mai bun decat cel initial dar nu este foarte multumitor, suprareglajul si timpul de stabilizare sunt in continuare mari Vizualizam suprafata de control din View ->Surface

Se observa ca suprafata este continua, uniforma si cu suficiente campuri

Pentru a imbunatati performantele mai introducem inca patru functii si inca doua raguli |: 6. If (nivel is putin.scazut) and (debit is positiv) then (robineti is desch.m.rapid) 7. If (nivel is putin.ridicat) and (debit is negativ) then (robineti is inch.m.rapid) Initial: dupa:

Inainte: 14

Dupa:

Raspunsul sistemului:

Se observa ca suprafata nu este uniforma si liniara are salturi mari pe unele zone 15

5.Concluzii

Raspunsul sistemului cu regulator PID este bun: -timp de stabilizare ~ 9ms -suprareglaj < 20% Raspunsul sistemului cu regulator fuzzy din primul caz cand aveam trei reguli,o intrare(nivel) cu trei functii de apartenenta(inalt, bun, scazut) si o iesire, sistemul este insuficient definit iar raspunsul nu este cel dorit : -timp de stabilizare mare -suprareglaj mare> In cazul al doilea avem doua intrari(nivel si debit) si cinci reguli, aici sistemul se comporta mai bine are un timp de raspuns si un suprareglaj mai mic insa nu sunt la fel de bune ca cele ale regulatorului PID -timp de stabilizare ~ 20ms -suprareglaj > 20% In cazul trei cu sapte reguli, performantele sistemului nu cresc ci din contra scad, Prea multe reguli si o suprapunere a functiilor de apartenenta nu cresc performantele sistemului Orcat de mult am incerca sa proiectam un regulator fazzy performant acesta nu poate ajunge la performantele regulatorului PID Performantele sistemului cu regulator fuzzy nu sunt mai bune decat cu PID dar sunt in domeniul acceptabil deci sistemul poate functiona Regulatorul fuzzy este mai usor de proiectat deoarece lucreaza intr-o interfata grafica cu variabile lingvistice

16

6. Bibliografie

1. Eugenia Minca, Utilizarea pachetelor soft Matlab Simulink Macarie 2. http://en.wikipedia.org/wiki/Fuzzy_Control_Language 3. Help Matlab 4. http://amotion.pub.ro/cercetare/laboratoare/ra/download/RA_lab_12A.p df 3 2

17