Sunteți pe pagina 1din 23

L1 Sisteme pentru control inteligent

Implementarea sistemelor cu logic fuzzy.


Deprinderi de lucru cu pachetul software specializat

1. Scopul lucrrii
Scopul lucrrii const n deprinderea folosirii mediului de simulare
Matlab pentru dezvoltarea de aplicaii care folosesc sisteme cu logic
fuzzy, precum i deprinderea modalitilor de analiz a funcionrii
sistemelor cu logic fuzzy oferite de mediul Matlab. Se va urmri, n
special, nelegerea structurii interne a unui sistem de inferene fuzzy (FIS -
Fuzzy Inference System) i a modalitilor prin care un astfel de sistem
poate fi construit cu ajutorul uneltelor din FLT (Fuzzy Logic Toolbox).
Lucrarea aceasta iniiaz o serie de lucrri ce urmresc prezentarea
modalitilor de analiz, proiectare, implementare, simulare i testare a
sistemelor cu logic fuzzy.

2 Introducere
Inteligena arficial (AI - Artificial Intelligence) este acea ramur a
tiinei care se ocup cu studierea metodelor de a face ca mainile s rezolve
sarcini specifice inteligenei umane (care e acea latur a personalitii ce
vizeaz capacitatea de a raiona, de a memora, de a nva, de a crea).
Logica fuzzy este unul din domeniile de interes din cadrul AI.
Un sistem de control este un ansamblu de elemente interdependente
ce conlucreaz n scopul realizrii activitii de control asupra unui proces.
Aceast activitate de control presupune urmtoarele:
- preluarea de informaii privind starea sistemului
- executarea de comenzi menite s aduc sistemul n starea dorit
(sau s-l menin n parametrii de funcionare dorii).
Activitatea de control poate fi realizat n urmtoarele moduri:
- manual - de ctre un operator uman
- automat - de ctre un sistem electronic.
Intereseaz, bineneles, modalitile de realizare a sistemelor de
control automat. n esena lui, un astfel de sistem de control trebuie s
realizeze o legtur (o mapare) ntre intrri (ce dau informaii despre starea
procesului) i ieiri (ce dau comenzi procesului).

-1-
L1 Sisteme pentru control inteligent

Legtura aceasta se poate face prin ecuaii matematice. n practic


aceast abordare este adesea dificil, dat fiind c:
nu este uor de gsit ecuaia ce leag ieirea sistemului de
control de intrarea sa,
multe procese au un comportament neliniar, n acest caz
modelarea matematic fiind foarte greoaie (dac nu chiar
imposibil).
De asemenea, cu ct crete numrul intrrilor, ecuaiile devin din ce
n ce mai complexe.
Logica fuzzy rezolv aceste probleme, astfel:
nu este nevoie de gsirea unei legturi matematice ntre
intrrile i ieirile sistemului de control; n loc de aceste
legturi, n proiectarea sistemului se vor folosi reguli
exprimate ntr-o manier foarte asemntoare modului n care
operatorul uman gndete respectiva activitate de control.
permite o modelare facil a unor legturi complexe i
puternic neliniare ntre intrri i ieiri.
Spre deosebire de logica binar clasic, n care valorile de adevr
sunt n {0, 1}, n logica fuzzy se lucreaz cu valori de adevr n [0, 1].
Prezentm, n continuare, cteva corespondene ntre logica binar i logica
fuzzy:
n logica binar n logica fuzzy
variabile variabile lingvistice (varibile fuzzy)
valori de adevr atribute lingvistice (mulimi fuzzy)
AND intersecie (minim)
OR reuniune (maxim)
NOT complementarea mulimii fuzzy
implicaia implicaia fuzzy

Elementul central n logica fuzzy este conceptul de mulime fuzzy.


La fel cum o mulime A poate fi definit pe baza unei mulimi X folosind o
funcie caracteristic fc:X->{0, 1}, cu proprietatea c fc(x)=1 dac
elementul x din X aparine mulimii A i fc(x)=0 n caz contrar, o mulime
fuzzy AF este definit pe baza mulimii X folosind o funcie caracteristic
u:X->[0, 1], cu semnificaia c u(x) reprezint gradul de apartenen al
elementului x din X la mulimea AF.
Aadar, o mulime fuzzy este o pereche (X, u), unde X este o
mulime numit univers de discurs i u:X->[0, 1] este funcia de
apartenen a mulimii fuzzy.

-2-
L1 Sisteme pentru control inteligent

Prin operaiile de intersecie i reuniune a dou mulimi fuzzy


definite pe acelai univers de discurs X se obine o mulime fuzzy cu
universul de discurs X i funcia de apartenen dat de:
n cazul interseciei: min(u1(x), u2(x)) - sau de oricare alt
T-norm
n cazul reuniuniii: max(u1(x), u2(x)) - sau de oricare alt S-
norm.
Complementara unei mulimi fuzzy (X, u) este mulimea fuzzy (X,
1-u). Implicaia din logica binar se extinde n logica fuzzy n mai multe
moduri, cea mai utilizat fiind implicaia n sens Mamdani (valoarea de
adevr a implicaiei este dat de minimul dintre valoarea de adevr a
premisei i cea a concluziei).
O variabil lingvistic (ca "distana") poate lua ca valori atribute
lingvistice (de genul "foarte mare"), exprimate ca mulimi fuzzy pe
universul de discurs al variabilei lingvistice (domeniul distanelor posibile).
Rezolvarea unei probleme de control (i nu numai) cu ajutorul logicii
fuzzy se poate face prin realizarea unui sistem de inferene fuzzy (FIS -
Fuzzy Inference System). Structura intern a unui FIS cuprinde
urmtoarele componente:

- blocul de fuzzificare:
Fiecrei intrri n sistem i se asociaz o variabil lingvistic, i
fiecrei variabile lingvistice i se stabilete universul de discurs (care este
domeniul intrrii respective) i funciile de apartenen ale atributelor sale
lingvistice.

- baza de reguli fuzzy:


Conine reguli de control, ce exprim legturi ntre intrri i ieiri,
exprimate n forma:
DAC intrarea este atribut_lingvistic_intrare ATUNCI ieirea va fi
atribut_lingvistic_ieire.
(Exemplu: DAC distana este foarte_mare i viteza este mare
ATUNCI acceleraia va fi foarte_puternic).

- motorul de inferene fuzzy:


Evalueaz pentru fiecare regul din baza de reguli fuzzy valoarea de
adevr a premisei (n funcie de valorile curente ale intrrilor din sistem) i
realizeaz operaia de implicaie fuzzy, obinnd o concluzie. Toate
concluziile rezultate sunt agregate, obinndu-se n final o mulime fuzzy ce
codific decizia la care sistemul a ajuns n urma analizrii intrrilor i a
regulilor de funcionare.

-3-
L1 Sisteme pentru control inteligent

- blocul de defuzzificare:
Obine o valoare numeric (ce va ajunge la ieirea sistemului) pe
baza mulimii fuzzy furnizate de motorul de inferene fuzzy. Cea mai
utilizat metod de reducere a unei mulimi fuzzy la un numr este metoda
centrului de greutate (centroid) - se reduce mulimea fuzzy la numrul ce
reprezint abscisa centrului de greutate al figurii mrginite de graficul
funciei de apartenen a mulimii fuzzy respective.

3 Prezentarea toolbox-ului Fuzzy Logic din mediul de


simulare Matlab
Un toolbox MATLAB este o colecie de fiiere, funcii i programe
MATLAB specializate pe un anumit domeniu.
Toolbox-ul Fuzzy Logic al mediului de simulare Matlab reprezinta
mediul software de simulare a sistemelor cu logica fuzzy oferit de acest
program extrem de popular n lumea stiintifica. Construirea unui sistem cu
logica fuzzy n Matlab este simpla datorita interfetei grafice prin care
utilizatorul poate comunica cu mediul de simulare Matlab (componenta
dedicata logicii fuzzy).
Aceasta interfata permite construirea si, n final, analiza grafica a
sistemului cu logica fuzzy dorit, folosind cele 5 instrumente grafice care
formeaza componenta dedicata logicii fuzzy a mediului Matlab:
1. Editorul sistemului cu logica fuzzy, numit FIS Editor
(=Fuzzy Inference System Editor);
2. Editorul functiilor de apartenenta, adica, al multimilor
fuzzy peste universurile discursurilor variabilelor de intrare si
de iesire ale sistemului cu logica 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 fiecarei reguli si rezultatul
(multimea fuzzy de iesire) dat de fiecare regula a bazei de
reguli, pentru o anumita valoare transanta a intrarii stabilite
de catre 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
-4-
L1 Sisteme pentru control inteligent

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.
Cele cinci instrumente grafice sunt legate dinamic ntre ele, adica, o
modificare a sistemului cu logica fuzzy facuta ntr-una din ferestrele de
editare va putea afecta ceea ce se vede n celelalte ferestre. La un moment
dat, pentru un sistem cu logica fuzzy, putem avea oricte din cele cinci
ferestre deschise simultan.
Cele cinci instrumente grafice ale componentei dedicate sistemelor
cu logica fuzzy din Matlab sunt prezentate simbolic n diagrama-bloc din
Figura 1.

Figura 1. Cele cinci instrumente de construire si analiza a unui sistem cu


logica fuzzy, si legatura lor cu sistemul cu logica fuzzy

-5-
L1 Sisteme pentru control inteligent

Pentru construirea unui sistem cu logica fuzzy n Matlab, primul pas


dupa lansarea n executie a programului Matlab.exe este scrierea de la
tastatura, la prompterul programului, a comenzii:
>> fuzzy
urmata de apasarea tastei Enter. Aceasta comanda lanseaza n executie
editorul sistemului cu logica fuzzy (FIS Editor); va aparea pe ecran fereastra
grafica a editorului de sisteme cu logica fuzzy din Figura 2.

Figura 2. Fereastra editorului de sisteme cu logica fuzzy

FLT se gsete n subdosarul "toolbox\fuzzy" din directorul unde


este instalat MATLAB. Acesta conine, la rndul su, dou subdosare:
fuzzy - conine funcii ce faciliteaz lucrul cu logica fuzzy,
fuzdemos - conine programe demonstrative ce ilustreaz
cteva exemple tipice de sisteme cu logic fuzzy.
Principalele funcii (coninute n dosarul "fuzzy" din
"MATLAB\toolbox\fuzzy") oferite de toolbox-ul Fuzzy Logic sunt
prezentate n continuare, grupate pe categorii:

-6-
L1 Sisteme pentru control inteligent

1) funcii pentru construcia unui FIS:


newfis - creeaz un nou FIS
addvar - adaug o nou variabil la FIS
rmvar - terge o variabil de la FIS
addmf - adaug o funcie de apartenen la FIS
rmmf - terge o funcie de apartenen de la FIS
addrule - adaug reguli la FIS
evalmf - evalueaz o funcie de apartenen
setfis - seteaz proprietile FIS
getfis - preia proprietile FIS
defuzz - defuzzific o funcie de apartenen
evalfis - realizeaz inferena fuzzy
gensurf - genereaz suprafaa de ieire a FIS
mf2mf - transfer parametrii ntre funcii de apartenen
parsrule - analizeaz gramatical regulile
plotfis - afieaz diagrama intrare-ieire a FIS
plotmf - afieaz toate funciile de apartenen pentru o variabil
readfis - ncarc FIS de pe disc
writefis - salveaz FIS pe disc
showrule - afieaz regulile FIS
showfis - afieaz coninutul unei structuri FIS, cu explicaii.

2) funcii pentru generarea funciilor de apartenen (MFs -


Membership Functions):
trimf - funcie de apartenen triunghiular
trapmf - funcie de apartenen trapezoidal
sigmf - funcie de apartenen sigmoidal
dsigmf - funcie de apartenen de tip diferen a dou funcii
sigmoidale
psigmf - funcie de apartenen de tip produs a dou funcii
sigmoidale
gaussmf - funcie de apartenen de tip curb Gauss
gbellmf - funcie de apartenen de tip clopot al lui Gauss
pimf - funcie de apartenen de tip pi
smf - funcie de apartenen de tip S
zmf - funcie de apartenen de tip Z.

3) funcii pentru lucrul cu interfaa grafic:


fuzzy - editorul de sisteme de inferene fuzzy (FIS)
mfedit - editorul de funcii de apartenen
ruleedit - editorul de reguli

-7-
L1 Sisteme pentru control inteligent

ruleview - vizualizatorul diagramei de inferene fuzzy


surfview - vizualizatorul suprafeei intrare-ieire
anfisedit - interfaa pentru antrenarea i testarea ANFIS (Adaptive
Neuro-FIS)
findcluster - interfaa pentru clustering (grupare).

4) funcii pentru implementarea de tehnici fuzzy avansate:


anfis - antreneaz un FIS de tip Sugeno
fcm - gsete clusterele cu fuzzy C-means clustering
genfis1 - genereaz un FIS Sugeno iniial pentru antrenarea ANFIS
genfis2 - genereaz un FIS Sugeno folosind substractive clustering
(gruparea substractiv)
subclust - estimeaz centrul clusterului folosind substractive
clustering.

5) alte funcii.

Informaii detaliate despre fiecare dintre funciile menionate (ca i


despre celelalte), ct i despre parametrii acestora, se pot obine scriind

>>help nume_funcie

n fereastra de comand MATLAB (n loc de "nume_funcie" se va


completa numele funciei dorite).

Exemplu: >>help newfis

-8-
L1 Sisteme pentru control inteligent

Cteva dintre aplicaiile demonstrative (coninute n dosarul


"fuzdemos" din "MATLAB\toolbox\fuzzy") sunt artate n continuare,
grupate dup tip:

1) fiiere MATLAB (*.m):


mfdemo - funciile de apartenen
defuzzdm - metodele de defuzzificare
invkine - manevrarea unui bra robotic
juggler - sistem bil-palet
sltbu - parcarea unui camion
noisedm - anularea activ a zgomotului
fcmdemo - demo fuzzy C-means clustering n 2D
irisfcm - demo fuzzy C-means clustering n 4D
trips - demo substrative clustering cu date demografice.

2) fiiere FIS (*.fis):


mam21 - sistem FIS de tip Mamdani (dou intrri i o ieire)
tipper1 - sistem de calcul al baciului (o intrare i o ieire)
tipper - sistem de calcul al baciului (dou intrri i o ieire)
tippersg - versiunea "tipper" cu FIS de tip Sugeno
tank - sistem de reglare a nivelului apei ntr-un rezervor
tank2 - la fel ca "tank", mbuntit
tanksg - versiunea "tank" cu FIS de tip Sugeno
slcp - pendulul invers
slcp1 - pendulul invers, cu lungime variabil
slcpp1 - pendulul invers dublu, cu lungime variabil
shower - sistem de reglare pentru du
invkine1 - sistem de manevrare bra robotic 1
invkine2 - sistem de manevrare bra robotic 2
custtip - fiier model personalizat.

3) funcii FIS personalizate (*.m) pentru "custtip.fis":


custmf - funcie de apartenen personalizat
custand - funcie AND personalizat
custor - funcie OR personalizat
custimp - funcie de implicaie personalizat
custagg - funcie de agregare personalizat
custdfuz - funcie de defuzzificare personalizat.

4) funcii ajuttoare (*.m):


animtank - animeaz rezervorul de ap

-9-
L1 Sisteme pentru control inteligent

inittbu - iniializeaz demo-ul parcare camion


animtbu1 - animaia1 pentru camion
animtbu2 - animaia2 pentru camion
initcp - intializeaz pendulul invers
animcp - animeaz pendulul invers
traininv - antreneaz ANFIS pentru modelarea braului robotic.

5) altele.

Rularea acestor demo-uri se poate face lansnd funciile


corespunztoare (prin scrierea numelor lor n fereastra de comand
MATLAB i apsarea tastei <Enter>). O alt variant este utilizarea
sistemului de Help al MATLAB, sau lansarea comenzii
>>demos
i selectarea Toolboxes\FuzzyLogic.
Explicaii detaliate legate att de scopul, ct i de modalitatea de
implementare a programelor demonstrative enumerate sunt coninute (pe
lng fiierele de Help corespunztoare) n codul lor surs - fiierele de tip
(*.m). Se poate vizualiza coninutul unei funcii MATLAB fie prin
utilizarea comenzii
>>type nume_funcie
n fereastra de comand, fie prin deschiderea fiierului "nume_funcie.m"
(meniul File->Open) n MATLAB.
Exemplu: >>open trimf

- 10 -
L1 Sisteme pentru control inteligent

4 Probleme rezolvate

n aplicaia prezentat n lucrare dorim s aproximm regiunea


direct a caracteristicii statice curent-tensiune (i-v) a unei diode
semiconductoare, pe baza curbei i-v a componentei determinate
experimental (sau luate din catalog).
Ca i intrare, sistemul cu logic fuzzy va avea valorile tensiunii pe
diod la polarizare direct, v = vAK, exprimate n mV, n domeniul [0mV,
860mV].
Ca i ieire, sistemul cu logic fuzzy trebuie s furnizeze valoarea
curentului anodic prin diod, i = iA, exprimat n mA, n domeniul [0mA,
450mA].
Sistemul cu logic fuzzy obinut va caracteriza complet
comportamentul electric al diodei n regiunea direct pentru v[0mV,
860mV], ignornd variaia caracteristicii i-v cu temperatura, umiditatea i
abaterile de proces tehnologic de fabricaie a diodei. Deci, sistemul cu
logic fuzzy va putea fi folosit ca i un model electric al diodei.

Principiul de modelare fuzzy a caracteristicii i-v a diodei


semiconductoare

Figura a - Acoperirea caracteristicii neliniare i-v a diodei prin zone fuzzy

- 11 -
L1 Sisteme pentru control inteligent

Principiul modelrii caracteristicii i-v a diodei folosit n aceast


lucrare se bazeaz pe acoperirea graficului neliniar din Figura a prin zone
fuzzy, aa cum se vede n Figura a. Fiecare zon fuzzy este descris
printr-o mulime fuzzy peste universul discuiei variabilei de intrare v,
notat MFVk, o mulime fuzzy corespunztoare peste universul discuiei
variabilei de ieire i, notat MFIk, i o regul fuzzy care indic faptul c
ntre cele dou mulimi fuzzy MFVk i MFIk exist o relaie fuzzy care
descrie zona fuzzy: Rk:
Dac v este MFVk atunci i este MFIk.
Pe poriunile de grafic cu neliniaritate pronunat sunt necesare mai
multe mulimi fuzzy de intrare i respectiv de ieire pentru o descriere
precis a graficului. n orice zon aproximativ liniar a graficului, o pereche
de mulimi fuzzy este suficient pentru o descriere complet a graficului.

Componentele sistemului cu logic fuzzy folosit n lucrare pentru


modelarea caracteristicii i-v a diodei semiconductoare sunt:
mulimile fuzzy definite peste universul discuiei variabilei de
intrare, v, notate prin MFVk;
mulimile fuzzy definite peste universul discuiei variabilei de ieire,
i, notate prin MFIk;
baza de reguli fuzzy, coninnd regulile Rk de forma: Rk: Dac v
este MFVk atunci i este MFIk.
Intrarea tranant a sistemului cu logic fuzzy este valoarea
instantanee a tensiunii pe diod la polarizarea direct, v[0 mV, 860 mV].
Ieirea tranant a sistemului cu logic fuzzy va fi curentul i prin
diod, i[0 mA, 450 mA].
Prin realizarea operaiilor de: fuzzificare; inferen; defuzzificare,
operaii care prelucreaz valoarea tranant de intrare v a sistemului cu
logic fuzzy n conformitate cu descrierea sistemului cu logic fuzzy dat de
componentele sale, se obine valoarea tranant a ieirii i; perechile de
valori tranante (v,i) obinute, reprezentate grafic n sistemul cartezian,
aproximeaz cu eroare mic caracteristica i-v a diodei semiconductoare
reprezentat n Figura a.

Definirea mulimilor fuzzy pentru variabila de intrare v

Universul discuiei variabilei de intrare, v, poate fi citit de pe caracteristica


i-v din Figura a, i este intervalul de numere reale: [0 mV, 860mV].
Experimental se constat c o aproximare suficient de bun, n condiiile
pstrrii complexitii sistemului cu logic fuzzy n limite sczute, se obine
- 12 -
L1 Sisteme pentru control inteligent

pentru o acoperire a caracteristicii i-v prin 9 zone fuzzy. Aceasta conduce


la o acoperire a universului discuiei variabilei v prin 9 mulimi fuzzy de
form triunghiular. Pentru simplitatea notaiei, cele 9 mulimi fuzzy sunt
denumite: MFV1, MFV2, ...., MFV9. (MFV este o notaie prescurtat
pentru Mulime Fuzzy pentru tensiunea V; indicele numeric corespunde
zonei fuzzy respective). Cele 9 mulimi fuzzy formeaz o partiie fuzzy,
iar coordonatele suporturilor i valorilor lor mediane pot fi citite n Figura
ab.

Figura ab. Mulimile fuzzy peste universul discuiei variabilei de intrare v

Definirea mulimilor fuzzy pentru variabila de ieire i

Universul discuiei variabilei de ieire, i, poate fi citit de pe caracteristica i-


v din Figura a, i este intervalul de numere reale: [0 mA, 450mA].
Acoperirea caracteristicii i-v prin cele 9 zone fuzzy din Figura a
presupune acoperirea universului discuiei variabilei i prin 9 mulimi fuzzy
de form triunghiular. Pentru simplitatea notaiei, cele 9 mulimi fuzzy sunt
denumite: MFI1, MFI2, ...., MFI9. (MFI este o notaie prescurtat pentru
Mulime Fuzzy pentru curentul I; indicele numeric corespunde zonei
fuzzy respective). Cele 9 mulimi fuzzy nu mai formeaz o partiie fuzzy;
coordonatele suporturilor i valorilor lor mediane pot fi citite din Figura ac.

- 13 -
L1 Sisteme pentru control inteligent

Figura ac. Mulimile fuzzy peste universul discuiei variabilei de ieire i

Baza de reguli a sistemului cu logic fuzzy

Fiecare regul din baza de reguli a sistemului cu logic fuzzy


stabilete o relaie fuzzy ntre o mulime fuzzy de intrare i o mulime fuzzy
de ieire, artnd valoarea fuzzy a ieirii i, MFIk, corespunztoare fiecrei
valori fuzzy a intrrii v, MFVj, k=1...9, j=1...9. Vom avea 9 reguli fuzzy n
baza de reguli a sistemului; fiecare regul fuzzy definete una din cele 9
zone fuzzy din Figura a.
Cele 9 reguli fuzzy sunt:
R1: Dac v este MFV1 atunci i este MFI1.
R2: Dac v este MFV2 atunci i este MFI2.
.....................................................................
R9: Dac v este MFV9 atunci i este MFI9.

Operaia de inferen

Operaia de inferen (cunoscut n literatura de specialitate sub


numele de mecanism de inferen) folosit n aceast aplicaie este de tip
max-min.
- 14 -
L1 Sisteme pentru control inteligent

Formula relaiei de implicaie (folosit pentru descrierea matematic a


fiecrei reguli din baza de reguli fuzzy) este min (adic, Mamdani).
Cu aceste definiii pentru mecanismul de inferen fuzzy i implicaia fuzzy,
formula dup care se evalueaz mulimea fuzzy de ieire a oricrei reguli
fuzzy:
Rk: Dac v este MFVk atunci i este MFIk (k=1...9)
este:

ceea ce, n cazul n care valoarea tranant de intrare se noteaz prin v=v0,
se reduce la:

unde prin MFOk se noteaz mulimea fuzzy de ieire generat de regula


Rk, aa cum se vede n Figura ad, sau, concluzia parial a sistemului cu
logic fuzzy.

Figura ad. Obinerea concluziei pariale din regula fuzzy Rk

Metoda de agregare a concluziilor pariale MFOk, k=1...9, date de


cele 9 reguli din baza de reguli fuzzy, este max:

- 15 -
L1 Sisteme pentru control inteligent

Operaia de defuzzificare

Operaia de selecie a valorii tranante i0 a ieirii, adic, de


defuzzificare a rezultatului fuzzy MFO al inferenei fuzzy, este centrul
ariei, centroid (COA = Center of Area). Daca ne gndim la arie ca la un
platou cu densitate constanta, centrul ariei este punctul de pe axa
orizontala care tine platoul in echilibru.

Experimentare
1. Crearea sistemului fuzzy
Pentru experimentare utilizam toolbox-ul Fuzzy Logic din Matlab.
Sistemul cu logica fuzzy va fi creat cu ajutorul editorului grafic FIS
Editor.
Lansai editorul grafic prin comanda fuzzy din fereastra de
comenzi.
Construii mulimile fuzzy pentru variabile de intrare (tensiune) in
conformitate cu Figura ab si respectiv pentru variabila de ieire
(curent) in conformitate cu Figura ac. (Edit / Membership Functions
...).
Editai regulile sistemului fuzzy conform paragrafului Baza de
reguli a sistemului cu logic fuzzy (Edit / Rules ...).
Salvai pe disc (File / Export / To file ...) sistemul fuzzy creat.

Sugestii:
1. Mulimile fuzzy pot fi vizualizate mai bine daca mrii numrul de puncte
pentru care se realizeaz afiarea (plot points).
2. Fiierul corespunztor sistemului fuzzy creat poate fi editat si in mod text,
daca este deschis cu editorul disponibil in Matlab. Pentru aceasta din
fereastra Current Directoryfaceti dublu click pe numele fiierului
(extensia .fis)

2. Experimentarea/Testarea sistemului fuzzy creat


Vizualizai curba intrare ieire (tensiune - curent) (View / Surface).
n mod implicit graficul este afiat pentru un numr de 15 puncte
pentru variabila de intrare (X grids). Setai numrul de puncte la 100.
Caracterizai curba obinuta din punct de vedere al asemnrii cu
caracteristica de modelat.
Analizai modul de realizare al operaiilor din SLF (activarea
regulilor, realizarea inferenei, determinarea concluziilor pariale,
agregarea i defuzzificarea) (View / Rules).

- 16 -
L1 Sisteme pentru control inteligent

Testarea sistemului cu logic fuzzy proiectat se face punctual, pe


urmtoarele valori ale variabilei tranante de intrare v (tensiunea la
polarizare direct pe diod): v={0 mV; 650 mV; 675 mV; 700 mV;
725 mV; 750 mV; 775 mV; 800 mV; 850 mV}.
Setai valoarea numrului de puncte de afiare la 10000 (Plot points).
Introducei pe rnd valorile din lista de mai sus in caseta de editare
Input i cititi valorile curentului generate de SLF.
Scriei un script matlab care sa realizeze afiarea graficului tensiune-
curent (utilizati instructiunile readfis, evalfis, plot). Atenie: la
evalfis utilizati si parametrul NPts=10000.
Identificai regiunile din caracteristica care introduc erori mai mari
de aproximare.
Modificai sistemul fuzzy iniial pentru reducerea acestor erori.

5 Desfurarea lucrrii

1. Se va citi breviarul teoretic. Se atrage atenia asupra faptului c toate


cunotinele din aceast lucrare de laborator vor fi necesare i n
derularea celorlalte lucrri.
2. Se vor studia problemele rezolvate (problemele prezentate pe
parcursul acestui laborator precum i cele oferite ca exemple n kitul
Matlab), ncercnd gsirea altor posibiliti de soluionare a acestora.
3. Analizai programele demonstrative oferite de toolbox-ul Fuzzy
Logic. Avei n vedere urmtoarele:
ce i propune s realizeze respectivul demo
prin ce mijloace este rezolvat problema
care este modalitatea efectiv de implementare.

4. Analizai funciile oferite de toolbox-ul Fuzzy Logic. Avei


nvedere urmtoarele:
ce face respectiva funcie
ce parametri are i ce returneaz.
n cadrul acestei activiti vei folosi comanda "help" i veti rula n
fereastra de comand funciile analizate. Acordai o atenie deosebit
urmtoarelor funcii: newfis, addvar, addmf, addrule, defuzz, trimf,
trapmf i evalfis.

5. Realizai un FIS (de tip Mamdani) cu ajutorul interfeei grafice


(>>fuzzy). Sistemul va avea structura urmtoare:

- 17 -
L1 Sisteme pentru control inteligent

Prin dublu-click pe oricare dintre variabilele de intrare sau de ieire


se va deschide editorul funciilor de apartenen. Pentru intrarea "d"
funciile de apartenen vor fi urmtoarele:

Intrarea "v" va avea urmtoarele funcii de apartenen:

- 18 -
L1 Sisteme pentru control inteligent

Funciile de apartenen pentru ieire ("a") vor fi:

- 19 -
L1 Sisteme pentru control inteligent

Un dublu-click pe blocul central (de culoare alb) din "FIS Editor"


va deschide editorul de reguli. Se vor introduce urmtoarele reguli:

- 20 -
L1 Sisteme pentru control inteligent

n acest moment sistemul de inferene fuzzy este construit.


Funcionarea lui se poate analiza vizualiznd grafic operaiile pe care le
efectueaz motorul de inferene fuzzy (meniul View\Rules):

Suprafa a de ieire (reprezentarea grafic a dependenei ieirii de


cele dou intrri) pe care o genereaz acest sistem de inferene fuzzy se
poate vizualiza selectnd opiunea Surface din meniul View:

- 21 -
L1 Sisteme pentru control inteligent

6. Realizai sistemul de inferene fuzzy din cadrul activitii


anterioare, dar de aceast dat, utiliznd funciile din toolbox (n
fereastra de comand sau ntr-un fiier de tip (*.m)). Pentru
construirea sistemului vei utiliza funciile urmtoare: newfis,
addvar, addmf i addrule. Sistemul construit va putea fi analizat cu
ajutorul unor funcii ca: plotfis, plotmf sau gensurf.

7. Dup parcurgerea acestei lucrri de laborator, vei fi capabili s


rspundei la urmtoarele ntrebri:
Ce este un sistem de control cu inteligen artificial? Ce alte
utilizri mai are AI?
Ce este logica fuzzy?
Ce este o mulime fuzzy?
Care sunt operatorii utilizai n logica fuzzy?
Ce este un FIS, ce structur are?
n ce const operaia de fuzzificare?
Care sunt cele mai utilizate funcii de apartenen (i ce
parametri au funciile corespunztoare din FLT) ?
- 22 -
L1 Sisteme pentru control inteligent

Ce rol are motorul de inferene fuzzy? Cum funcioneaz?


Ce este defuzzificarea (i cum se face cu funcii din FLT)?
Care sunt paii necesari pentru construirea unui FIS
(utiliznd FLT)? Ce metode ofer MATLAB n acest scop?

5 Tema de cas
Tema va consta ntr-un rspuns (detaliat) la urmtoarea ntrebare:
Cum se poate face o comparaie din punct de vedere al
performanelor ntre dou modaliti distincte de realizare
(implementare) pentru un sistem de control?

Bibliografie
[1] Ioni, Silviu. Sisteme fuzzy. Ed. Universitii din Piteti. 2004.
[2] ***. Fuzzy Logic Toolbox User's Guide.

- 23 -