Sunteți pe pagina 1din 8

Laborator 3

Matlab - Interfaţa grafică


„Fuzzy Systems Toolbox”

1. Introducere

Calculul fuzzy se caracterizează prin faptul că permite manipularea


conceptelor vagi care nu pot fi modelate prin concepte matematice exacte (numere,
mulţimi sau funcţii clasice). Probleme în care intervin concepte vagi apar în teoria
controlului atunci când sistemele au caracter neliniar, iar stările lor nu pot fi
descrise în mod exact, ci doar prin enunţuri care au un grad de ambiguitate. Să
considerăm spre exemplu un sistem de control a temperaturii şi umidităţii aerului
într-o încăpere.

În general, un sistem fuzzy este constituit din:

– un subsistem de extragere a regulilor fuzzy pornind de la datele


problemei (etapa de fuzzificare);
– un subsistem de efectuare a inferenţelor fuzzy (etapa de raţionament);
– un subsistem de transformare a cunoştinţelor fuzzy în date efective
(etapa de defuzzificare).

Principalele aplicaţii ale calcului fuzzy sunt:

– recunoaşterea formelor;
– aproximarea funcţiilor;
– controlul sistemelor;
– compresia imaginilor.

Aceste consideraţii referitoare la raţionametul fuzzy şi utilitatea lui, au stat la


baza construirii de către firma MathWorks a toolbox-ului Fuzzy Logic Toolbox.
Acesta conţine o colecţie de funcţii Matlab ce permit utilizatorului să creeze, editeze
sau să particularizeze o interfaţă fuzzy pentru diferitele sisteme supuse analizei.
Matlab Interfaţa grafică “Fuzzy Systems Toolbox”

În funcţie de modul de accesare al funcţiilor pe care Fuzzy System Toolbox


le înglobează, avem mai multe posibilităţi de lucru:

– în linia de comandă;
– instrumente grafice interactive;
– blocuri de funcţii utilizabile în cadrul interfeţei Simulink.

Funcţiile în Matlab pot fi construite de către utilizatori sub forma unor fişiere
cu extensia „m”, şi pot fi folosite în cadrul diferitelor aplicaţii pe care le construim
prin apelul lor. În particular, funcţiile pe care toolbox-ul Fuzzy System Toolbox le
oferă sunt niste prototipizări ai diferiţilor algoritmi pe care se bazează logica fuzzy.
Pentru a vizualiza algoritmul ce sta în spatele unei astfel de funcţii, putem tasta în
linia de comanda a Matlab-ului:
>>type nume_functie

Modelarea, identificarea şi experimentarea funcţiilor pentru diferite sisteme,


se poate face şi într-o manieră grafică. Fuzzy System Toolbox oferă o interfaţă
(GUI - Graphical User Interface), numită FIS - Fuzzy System Interface, ce poate
fi accesată prin tastarea în linia de comandă:
>>fuzzy

O a treia categorie de instrumente pusă la dispoziţia utilizatorului de Matlab


pentru accesarea funcţiilor specifice logicii fuzzy este reprezentată de o serie de
biblioteci „ascunse” în spatele unor blocuri, ce pot fi accesate (de exemplu, pentru
a construi şi analiza sistemele în Simulink).

Interdependenţa dintre aceste modalităţi o putem observa în fig. 1:

Figura 1. Interdependenţa modului de accesare a funcţiilor


Conducerea avansată a proceselor

2. Exemplu

2.1. Descrierea problemei

Vom prezenta în cele ce urmează cazul reglării temperaturii într-o seră cu


ajutorul tehnicilor logicii fuzzy şi a instrumentelor dedicate pe care Matlab-ul, prin
Fuzzy System Toolbox, le oferă utlizatorilor. Într-o primă fază, am utilizat un
senzor de temperatură pentru a înregistra valorile temperaturii în interiorul serei
de-a lungul unei anumite perioade de timp. În urma analizei datelor achizitionate
s-a constatat faptul că sistemul supus analizei este liniar şi funcţionarea sa poate fi
aproximată cu ajutorul funcţiei de transfer:

1
H (s) = (1)
s+2
şi are o întarziere egală cu 1s. În scopul reglării temperaturii, avem ca şi elemente
de execuţie: un ventilator şi un element de încalzire. Temperatura de referinţă este
de 20°C. Temperatura exterioară este de -1.5°C şi are efect la nivelul elementului
de integrare.
Se cere evidenţierea comparativă a efectelor reglării temperaturii în interiorul
serei prin utilizarea unui regulator fuzzy cu o singură intrare şi a unui controller
fuzzy cu două intrări.

2.2. Etapele realizării aplicaţiei

2.2.1. Reglare fuzzy cu ajutorul unui controller cu o singură intrare

Parametrii sistemului supus simulării sunt:


– intrarea de referinţă reprezentând temperatura dorită în interiorul serei
(de tip treaptă) este de 20°C;
– temperatura externă este de -1.5°C;
– condiţia iniţială de integrare a elementului de integrare este 10;
– limita inferioară de saturaţie a elementului de integrare este 10;
– întarzierea sistemului este de 1s.

Dacă am fi folosit un regulator classic de tip PID, intrarea sa ar fi fost


diferenţa (eroarea) dintre temperatura de referinţă şi ieşirea sistemului. Schema de
reglare, în condiţiile mai sus menţionate, este prezentată în fig. 2:
Matlab Interfaţa grafică “Fuzzy Systems Toolbox”

Figura 2. Reglarea clasică a temperaturii

Deoarece construcţia unei astfel de scheme a facut obiectul unui alt capitol, nu
vom insista asupra detaliilor de realizare, ci vom evidenţia doar modul în care ieşirea
sistemului se modifică în urma folosirii unui alt tip de regulator. Astfel, în locul
regulatorului clasic de tip PID, vom folosi un regulator fuzzy. Pentru a construi
regulatorul fuzzy trebuie să parcurgem anumite etape, prezentate în continuare.

A. Definirea intrărilor şi ieşirilor regulatorulul fuzzy


(interfaţa grafică FIS Editor)

Considerăm ca intrare, diferenţa între temperatura de referinţă şi ieşirea


sistemului supus reglării, numită eroare şi ca ieşire, comanda dată de reglulator.
Intervalul de variaţie a erorii este [-10; 14], iar al comenzii, [-30; 37]. Pentru a
stabili aceste lucruri, scriem comanda următoare în consolă:
>>fuzzy

Se va deschide fereastra
prezentată în figura alăturată, în
care vom seta intrările şi ieşirile:

Edit / Add input


Edit / Add output

Figura 3.
Definirea intrărilor şi ieşirilor
Conducerea avansată a proceselor

B. Definirea funcţiilor de apartenenţă


(interfaţa grafică Membership Function Editor)

Pentru fiecare dintre intrările şi ieşirile considerate, funcţiile de apartenenţă


sunt de tip trimf (triunghiulare), câte trei pentru fiecare şi au următoarea
semnificaţie: dacă eroarea este negativă, înseamnă că temperatura de ieşire este mai
mare decât temperatura de referinţă, deci în interiorul serei este cald şi apare
necesitatea unei ventilaţii. Dacă valoarea sa este pozitivă, funcţia de apartenenţă va
indica frig în sera şi necesitatea unui element de încalzire. In caz contrar, totul este
bine şi nimic nu se schimbă la nivelul elementului de execuţie.

Pentru a stabili aceste lucruri, parcurgem următoarele etape:

View / Edit Membership function


Edit / Add Mfs (pentru intrare - eroarea)
View / Edit Membership function
Edit / Add Mfs (pentru ieşire - comandă)

Figura 4. Definirea funcţiilor de apartenenţă

C. Definirea regulilor de inferenţă


(interfaţa grafică Rule Editor şi Rule Viewer)

Stabilim regulile de inferenţă şi ponderea fiecăreia dintre acestea, în


stabilirea rezultatului final, cu ajutorul interfeţei grafice Rule Editor şi le vom
vizualiza prin interfaţa grafică Rule Viewer:
1. Dacă (eroare este cald), atunci (comanda este ventilatie) - (pondere 1)
2. Dacă (eroare este Ok), atunci (comanda este nimic) - (pondere 1)
3. Dacă (eroare este frig), atunci (comanda este incalzire) - (pondere 1)
Matlab Interfaţa grafică “Fuzzy Systems Toolbox”

În cadrul interfeţei, ele vor fi formulate, într-o manieră interactivă, astfel:


1. IF (eroare is cald) then (comanda is ventilatie).(1)
2. IF (eroare is OK) then (comanda is nimic). (1)
3. IF (eroare is frig) then (comanda is incalzire). (1)

Pentru setarea sau vizualizarea acestor reguli, se dau următoarele comenzi:


View / Edit Rule (fig. 5);
View / View Rule (fig. 6);

Figura
Definirea regulilor

Figura 6.
Vizualizarea regulilor
Conducerea avansată a proceselor

D. Simularea şi vizualizarea rezultatelor


(interfaţa grafică Surface Viewer)

Vom vizualiza răspunsul regulatorului fuzzy cu ajutorul interfeţei grafice


Surface Viewer. Sistemul de inferenţă este de tip MAMDANI, iar regula de
defuzzificare este metoda centroidă.

View / View Surface

În acest moment, avem construit un regulator fuzzy cu o singură intrare, a


cărui nume îl vom stabili prin salvarea sa sub formă de fişier cu extensia „fis” pe
discul local sau sub formă de variabilă în zona de lucru a Matlab-ului.

Pentru a-l utiliza în scopul reglării temperaturii din interiorul serei, trebuie să
îl utilizăm sub forma unui bloc, în cadrul unei scheme construite cu ajutorul
Simulink-ului.

Modelul sistemului supus reglării este prezentat mai jos:

Figura 7. Modelul sistemului

Blocul numit Fuzzy Logic Controller îl găsim predefinit în Fuzzy Logic


Toolbox, rolul nostru fiind acela de a-l personaliza (se deschide prin dublu-clic pe
acest bloc) prin specificarea fişierului pe care il va apela (în cazul nostru, numele
variabilei salvate în zona de lucru a Matlab-ului).

Această fereastră de dialog este prezentată în continuare:


Matlab Interfaţa grafică “Fuzzy Systems Toolbox”

Figura 8. Specificarea parametrilor pentru Fuzzy Logic Controller

În acest caz, răspunsul sistemului rezultat în urma simulării sistemului


construit precum si comanda regulatorului fuzzy (Simulation-Start şi apoi dublu-
clic pe Scope) au următoarea formă:

Figura 9. Răspunsul sistemului si comanda regulatorului de tip fuzzy

S-ar putea să vă placă și