46
1 Universitatea „Aurel Vlaicu” din Arad Facultatea de Inginerie Marius M. Bălaş SISTEME NEURO- FUZZY Îndrumător de proiect

Sisteme Neuro Fuzzy

  • Upload
    misu77

  • View
    134

  • Download
    9

Embed Size (px)

DESCRIPTION

neuro fuzzy

Citation preview

Page 1: Sisteme Neuro Fuzzy

1

Universitatea „Aurel Vlaicu” din Arad

Facultatea de Inginerie

Marius M. Bălaş

SISTEME NEURO- FUZZY

Îndrumător de proiect

Page 2: Sisteme Neuro Fuzzy

2

Cuprins

1. Introducere în Sistemele Fuzzy Hibride

2. Tool-kit-ul Fuzzy Inference System

3. Implementarea FIS a unui regulator PD

4. Regulatoarele fuzzy-interpolative

5. Regulatoarele neuro-fuzzy

Page 3: Sisteme Neuro Fuzzy

3

1. Introducere în Sistemele Fuzzy Hibride

1.1. Sisteme inteligente hibride

Sistemele inteligente hibride fac parte din categoria sistemelor Soft Computing. Ele combină diferite metode şi tehnici provenite din subdomenii ale Inteligenţei Artificiale, cu scopul de a obţine în urma hibridizării performanţe mai bune decât ale fiecărei din-tre componente, luate în parte. Câteva astfel de realizări sunt: sistemele neuro-fuzzy, sistemele fuzzy-expert, sistemele conexionist-expert, sisteme evolutiv-neuronale, siste-mele fuzzy-genetice, etc.

Se observă că o mare parte dintre sistemele inteligente hibride au în componenţă latura care ţine de teoria şi practica Sistemelor Fuzzy. Explicaţia acestui fapt rezultă din stu-diul sistemelor fuzzy:

a) Teoria mulţimilor fuzzy permite cea mai avantajoasă reprezentare matematică şi pe calculator a cunoştinţelor exprimabile lingvistic, cu care operează de regulă raţiona-mentele umane;

b) Teoria mulţimilor fuzzy în sine nu oferă soluţiile concrete ale aplicaţiilor;

Aşa cum se va observa în continuare, un sistem fuzzy poate fi considerat ca o formă particulară de sistem expert, alcătuit dintr-o bază de reguli de tipul „Dacă … atunci …” a căror modelare şi prelucrare logică se face prin teoria mulţimilor fuzzy, dar a căror conţinut trebuie completat de către experţi. Diferitele tehnici preluate din arsenalul Inteligenţei Artificiale au tocmai scopul de a juca rolul expertului uman, prin ajustarea automată a regulilor de conducere.

Acest îndrumător ilustrează principalele tehnici de dezvoltare a sistemelor inteligente hibride care includ componente fuzzy. Principalul instrument utilizat este pachetul software Matlab, care prin toolkit-urile dezvoltate de-a lungul timpului oferă o platfor-mă avantajoasă de testare şi implementare a soluţiilor, larg utilizată în toată lumea, atât în mediile academice cât şi în cele industriale.

Page 4: Sisteme Neuro Fuzzy

4

1.2. Mulţimi fuzzy

În teoria clasică a mulţimilor, o mulţime C este definită ca o colecţie de n elemente xi, cu i = 1 ... n, definite într-un domeniu de definiţie X. Fiecărui element i se poate ataşa o funcţie de apartenenţă FA, notată µµµµ(xn), având valoarea:

0 , dacă xn ∉ C µµµµ(xn) = (1.1)

1 , dacă xn ∈ C

O astfel de mulţime poate fi denumită „fermă” (crisp), deoarece gradul de apartenenţă respectă principiul terţului exclus din algebra booleană, fiind posibile numai două situ-aţii: apartenenţa sau non-apartenenţa, sau în termeni logici, adevăr sau fals.

Spre deosebire de mulţimile ferme, o mulţime fuzzy MF acceptă pentru FA orice va-

loare aparţinând intervalului [0 ... 1]. Valorile 0 şi 1 au aceeaşi semnificaţie ca şi în cazul mulţimilor ferme, adică non-apartenenţa respectiv apartenenţa totală a elemen-tului la MF. Valorile intermediare indică măsura în care elementul x aparţine catego-riei descrisă de mulţime. Un grad de apartenenţă de 0,9 indică o legătură puternică a elementului cu mulţimea în timp ce 0,5 arată că elementul poate la fel de bine să fie inclus sau exclus din mulţime. O MF A definită pe domeniul X va fi caracterizată de funcţia de apartenenţă

µµµµA (x) : X → [0 ... 1] (1.2) x∈∈∈∈X

Se defineşte înălţimea mulţimii A, hgt(A), valoarea maximă a funcţiei de apartenenţă:

hgt(A) = sup µµµµA(x) (1.3)

Dacă hgt(A) = 1 mulţimea fuzzy A se va numi normală. Dacă hgt(A) < 1, atunci A se va numi subnormală.

Suportul (baza, lăţimea) mulţimii A este format din mulţimea elementelor x∈∈∈∈X pentru care µµµµA(x) ≠ 0:

supp(A) = { x∈X µµµµA(x) > 0 } (1.4)

Toleranţa mulţimii A este format din mulţimea elementelor x∈∈∈∈X pentru care µµµµA(x)= 1:

tol(A) = { x∈X µµµµA(x) = 1 } (1.5)

Fig. 1.1 Reprezentările fermă şi fuzzy ale noţiunii de temperatură confortabilă

Page 5: Sisteme Neuro Fuzzy

5

În acest caz reprezentarea prin MF permite modelarea percepţiei umane a confortului termic, concept prin excelenţă subiectiv şi incert. Să presupunem că utilizăm această reprezentare în cadrul unui sistem de condiţionare a aerului. Deşi aparent renunţarea la definirea precisă a obiectivelor reglării ar putea părea hazardată, prin formularea fuzzy se obţin performanţe mult mai bune ale reglării temperaturii, nu în termeni de precizie, care oricum este nesemnificativă în acest caz, ci în termeni de economie de energie, reducere a numărului de acţiuni de reglare, adaptare la condiţiile interne şi de mediu, etc. Toate acestea sunt posibile prin simpla înglobare a cunoştinţelor de tip expert prin intermediul regulilor fuzzy de conducere.

Un sistem secvenţial de condiţionare a aerului utilizând logica lui G. Boole ar porni încălzirea imediat după scăderea temperaturii sub 21oC şi ar opri încălzirea la depăşirea temperaturii de 23oC. Această funcţionare asigură o anumită precizie şi siguranţă reglării, dar necesită un număr mare de acţionări ale elementului de execuţie, ceea ce produce în general uzura prematură a elementelor sistemului şi nu ţine cont de tendinţele naturale de evoluţie ale sistemului. De exemplu, dacă temperatura este de 20,7oC, mai mică decât limita inferioară admisibilă, dar tendinţa ei este de creştere, sistemul s-ar încadra singur, în scurt timp, în domeniul 21oC - 23oC. Pornirea încălzirii accelerează intrarea în domeniul de temperatură dorit dar cu preţul unei energii supli-mentare injectate în sistem, în plus existând mari şanse ca din cauza din cauza inerţiei termice temperatura să depăşească repede 23oC. Ar urma astfel fie o nouă disipare de energie necesară răcirii sistemului, fie o lungă perioadă de supraîncălzire.

Un sistem fuzzy având în setul de reguli de conducere şi o regulă referitoare la econo-mia de energie ar putea admite ca destul de confortabilă şi temperatura de 20,5oC, fără a porni încălzirea. Decizia nu va fi greşită, întrucât foarte puţini oameni ar putea sesiza cele 0,5oC cu care temperatura este inferioară domeniului impus. Datorită tendinţei naturale de încălzire se va ajunge treptat în domeniul 21oC - 23oC fără irosirea energiei.

Pentru FA se pot folosi diferite forme, cele mai uzuale dintre ele fiind prezentate în figura următoare.

Fig. 1.2 Forme folosite pentru FA

Dreptunghiul şi singleton-ul sunt de fapt proprii mulţimilor Booleene, dar ele se întâl-nesc frecvent în aplicaţii, asociate cu alte variabile fuzzy, de exemplu în cazul comen-zilor aplicate unui element de execuţie cu stări discrete.

Page 6: Sisteme Neuro Fuzzy

6

Când aplicaţia necesită precizie şi sensibilitate se poate apela la curbele de tip Gauss (“Λ“ sau “Π”) care au şi avantajul de a putea fi corelate cu mărimile probabilistice. În principiu se pot utiliza orice altă formă sau combinaţie de forme uzuale.

În marea majoritatea a aplicaţiilor se constată însă că cele mai des utilizate forme sunt cele triunghiulară şi trapezoidală, mai uşor de reprezentat şi necesitând un volum mai mic de calcule şi de memorie. Alegerea formelor simple de FA este justificată şi prin constatarea des menţionată în literatura de specialitate că esenţiale în aplicaţii sunt

suportul şi toleranţa unei MF, forma flancurilor FA având un efect mai redus asupra rezultatelor obţinute.

1.3. Logica fuzzy

Se consideră F familia mulţimilor fuzzy definite pe un domeniu de definiţie X. Între mulţimile incluse în F se pot defini operaţii care într-un mod analog algebrei booleene generează o structură algebrică de tip latice. Aceste operaţiile se vor nota ∪∪∪∪ şi ∩∩∩∩ ca şi în cazul teoriei clasice a mulţimilor:

A ∪∪∪∪ B : X x X → [0 ... 1] (1.6) A ∩∩∩∩ B : X x X → [0 ... 1]

Se introduce şi complementul mulţimii fuzzy A :

A : X → [0 ... 1] (1.7)

Construcţia algebrei booleene utilizează reuniunea şi intersecţia (în termeni logici SAU şi ŞI), singura variantă alternativă fiind reprezentată de implicaţiile logice, a căror utilizare este însă incomodă. În cazul logicii fuzzy LF se poate face apel la un număr mult mai mare de operaţii, fapt care conferă acestei logici un potenţial ridicat de adap-tare la diferite condiţii de lucru. L.A. Zadeh a propus utilizarea maximului şi minimului funcţiilor de apartenenţă ale celor doi operanzi ca operaţii de constituire a LF.

Operaţiile se pot descrie cu ajutorul funcţiilor de apartenenţă µµµµ : X → [0 ... 1].

µµµµ A ∪∪∪∪B (x) = max ( µµµµA(x), µµµµB(x) ) = µµµµA(x) ∨ µµµµB(x) (1.8)

µµµµ A ∩∩∩∩B (x) = min ( µµµµA(x), µµµµB(x) ) = µµµµA(x) ∧ µµµµB(x)

sau, simplificând notaţia (µµµµA(x) ⇒ A(x)) :

(A ∪∪∪∪ B) (x) = max ( A(x), B(x) ) = A(x) ∨ B(x) (1.9)

(A ∩∩∩∩ B) (x) = min ( A(x), B(x) ) = A(x) ∨ B(x)

Complementul mulţimii A, notat A, se va defini prin:

µµµµ A (x) = 1 - µµµµ A (x) sau A(x) = 1 - A(x) (1.10)

Page 7: Sisteme Neuro Fuzzy

7

Structura astfel obţinută este o latice distributivă deoarece se bucură de următoarele proprietăţi: asociativitate, comutativitate, absorbţie, idempotenţă şi distributivitate în ambele sensuri.

De asemenea se verifică legile lui de Morgan, principiul dublei negaţii şi legile lui 0 şi 1 (elementele neutre faţă de cele două operaţii):

A(x) ∪∪∪∪ 1 = 1 A(x) ∪∪∪∪ 0 = A(x) (1.11)

A(x) ∩∩∩∩ 1 = A(x) A(x) ∩∩∩∩ 0 = 0

Spre deosebire de logica booleană, în cazul LF nu se mai respectă însă principiile terţului exclus şi nici cel al contradicţiei, din cauza modului de alcătuire a funcţiilor de apartenenţă:

( A ∪∪∪∪ A )(x) ≠≠≠≠ 1 şi ( A ∩∩∩∩ A )(x) ≠≠≠≠ 0 (1.12)

De exemplu, în cazul în care A(x) = 0,5, caz în care incertitudinea atribuirii unei valori logice este maximă, ( A ∪∪∪∪ A )(x) = ( A ∩∩∩∩ A )(x) = 0,5. Diferenţa A(x) - A(x) poate reprezenta o măsură a caracterului vag al mulţimii A: cu cât diferenţa este mai mică, A este mai vagă. În cazul anterior A - A = 0. În cazul mulţimii lor ferme A - A = 1.

În perioada de început a logicii fuzzy s-au utilizat şi suma probabilistică şi produsul:

(A ∪∪∪∪ B) (x) = A(x) + B(x) - A(x) • B(x) (1.13)

(A ∩∩∩∩ B) (x) = A(x) • B(x)

Faţă de laticea min-max gradele de apartenenţă depind în acest caz de ambii operanzi. În consecinţă regulatoarele fuzzy care vor utiliza aceste operaţii vor fi mai “senzitive” decât cele bazate pe operaţia min-max.

De fapt există o clasă largă de operaţii utilizabile ca funcţii logice ∪∪∪∪ şi ∩∩∩∩, denumite norme triangulare. Prin normă t se înţelege o funcţie de două argumente t : [0 ... 1] x [0 ... 1] → [0 ... 1] având următoarele proprietăţi:

♦ asociativitate: (x t y) t z = x t (y t z)

♦ comutativitate: x t y = y t x (1.14)

♦♦♦♦ condiţii de limită: x t 0 = 0 , x t 1 = x

♦ nedescrescătoare pt. fiecare argument: pentru x ≤≤≤≤ y , w ≤≤≤≤ z, x t w ≤≤≤≤ y t z

O normă t este arhimediană dacă şi numai dacă:

♦ este continuă pentru fiecare argument (1.15)

♦ x t x < x

Page 8: Sisteme Neuro Fuzzy

8

Din cele de mai sus se observă că norma t prezintă majoritatea proprietăţilor funcţiei logice ŞI. Funcţia logică SAU poate fi modelată cu norma s (conorma t), care la rândul ei este:

♦ asociativă;

♦ comutativă; (1.16)

♦ satisface condiţiile: x s 0 = x , x s 1 = 1

♦♦♦♦ nedescrescătoare.

Este însă de remarcat că normele triangulare nu respectă în mod necesar proprietăţile de idempotenţă (x t x ≠≠≠≠ x şi x s x ≠≠≠≠ x) şi absorbţie (x t (x s y) ≠≠≠≠ x şi x s (x t y) ≠≠≠≠ x).

În tabelul următor sunt prezentate câteva dintre normele t-s mai des utilizate.

norme t norme s

x t y = min(x, y) x s y = max (x, y)

x t y = x y x s y = x + y - x y

x t y = 1-min([1, ((1-x)p + (1-y)p)1/p], p ≥ 1 x s y = min (1, (xp + yp)1/p) , p ≥ 1

x t y = max[0, (λ+1)(x+y-1)-λ x y], λ ≥-1 x s y = min [1, x + y + λ x y] , λ ≥ -1

Normele t şi s îndeplinesc următoarele inegalităţi:

x , dacă y = 1 min (x, y) ≥ x t y ≥ y , dacă x = 1 (1.17) 0 , în celelalte cazuri x , dacă y = 0 max (x, y) ≤ x s y ≤ y, dacă x = 0 (1.18) 1 , în celelalte cazuri

Alegerea unor norme t şi s diferite de min-max (sau eventual de produsul şi suma probabilistică) este totuşi mai rară, volumul de calcule necesar fiind mai mare, fără a se obţine întotdeauna îmbunătăţiri semnificative.

Utilizarea operaţiilor min-max, prin lipsa de interacţiune dintre operanzi (unul dintre ei nu participă la stabilirea rezultatului) nu este indicată în cazurile care reclamă funcţii de apartenenţă precise, dar în schimb oferă avantajul robusteţii şi imunităţii la zgomot.

Page 9: Sisteme Neuro Fuzzy

9

1.4. Variabile lingvistice şi fuzzyficare

Termenul de variabilă lingvistică VL, introdus de L. A. Zadeh în 1975 defineşte o variabilă care ia valori lingvistice, cum ar fi încet, repede, înalt, etc. Aceste valori sunt modelabile prin MF. Orice VL conţine câţiva termeni lingvistici TL primari - etichete lingvistice. Aplicând reguli sintactice şi semantice se pot construi termeni derivaţi şi propoziţii. Să luăm de exemplu VL temperatură, cu domeniul de definiţie cuprinzând gama de temperaturi care se pot realiza în interiorul unui vagon. Termenii lingvistici primari pot fi mic, mediu şi mare. Aceşti termeni pot fi în continuare ponderaţi cu modificatori, cum ar fi foarte, mai mult sau mai puţin, etc. Se obţin propoziţii corecte prin combinarea termenilor primari şi a modificatorilor, de exemplu (temperatură)

foarte mare. Cu ajutorul VL este posibilă reprezentarea cunoştinţelor într-un mod fami-liar percepţiei umane. Instrumentul matematic, bazat pe VL, prin care cunoştinţele pot fi reprezentate şi prelucrate se numeşte cadru cognitiv (frame of cognition) CC.

Familia de mulţimi fuzzy A = {A1, A2, ... Ac} formează un CC dacă îndeplineşte urmă-toarele două condiţii:

♦ A acoperă domeniul de definiţie X. Fiecare element al domeniului de definiţie poate fi atribuit cu un grad de apartenenţă diferit de zero cel puţin unei MF din A:

∀ ∃ Ai (x) > εεεε (1.19) x i

εεεε > 0 fiind denumit nivel de acoperire a lui X .

♦ Elementele lui A sunt mulţimi fuzzy unimodale. Se pot astfel identifica în X regiuni (câte o regiune pentru fiecare TL) care să fie în mare măsură compatibile cu acestea (cu grad semnificativ de apartenenţă la Ai). Aceste regiuni posedă un înţeles semantic clar.

Fig. 1.3. Cadru cognitiv

Partiţia fuzzy PF este un CC care se mai caracterizează şi prin proprietatea:

ΣΣΣΣ Ai (x) = 1, ∀ x ∈ X (1.20) i=1...c

O PF va încadra fiecare punct din domeniul de definiţie X într-unul sau doi TL, fără zone insuficient caracterizate, la care suma gradelor de apartenenţă ar fi mai mică de 1. În perspectiva utilizării PF la reglările automate, această condiţie exprimă faptul că suficiente informaţii pentru luarea unor decizii sigure în orice zonă a domeniului X. Dacă informaţiile ar fi insuficiente suma ar trebui să fie subunitară iar o sumă supra-unitară indică reguli contradictorii.

Page 10: Sisteme Neuro Fuzzy

10

Fig. 1.4. Partiţie fuzzy

Operaţia de proiectare a CC sau PF se numeşte fuzzyficare. Fuzzyficarea este operaţia esenţială de reprezentare în calculator a cunoştinţelor formulate lingvistic. De exemplu, în partea aplicativă a tutorialului, la fuzzyficarea variabilei eroarea de reglare vom utiliza următorii TL: negativ mare, negativ mic, zero, pozitiv mic şi pozitiv mare.

1.5. Controlere fuzzy

În sens larg un controler fuzzy CF este un sistem expert care utilizează variabile fuzzy. Un sistem expert SE este un program care urmăreşte un grup de cunoştinţe pentru obţi-nerea unor rezultate, în acelaşi mod ca şi experţii umani. Putem spune că acest gen de sisteme sunt tipice pentru IA. Un SE este materializat printr-o bază de cunoştinţe şi printr-un algoritm de căutare, bazat pe metode de raţionare. Cunoştinţele sunt repre-zentate prin reguli care pot fi uşor citite şi modificate de către utilizatori, de forma:

dacă < premiză > atunci < concluzie > (1.21)

Aşa cum am văzut deja, rolul LF în acest domeniu constă din reprezentarea cunoştin-ţelor şi din generarea mecanismelor de inferenţă asemănătoare raţionamentelor umane. Nu este deci întâmplător faptul că SF pot fi cel mai uşor implementate în domeniile în care există o experienţă umană anterioară. Inferenţa este operaţiunea prin care se pro-duc concluzii, estimări sau previziuni pornind de la un set de premize.

Acum putem defini mai precis noţiunea de controler, ca dispozitiv care materializează inferenţa în cazul sistemelor de luare de decizii sau generează o lege de conducere într-un sistem de reglare în buclă închisă.

Din punct de vedere informaţional, structura unui CF cuprinde 3 blocuri fundamentale: defuzzyficarea (interfaţa de intrare), inferenţa şi fuzzyficarea (interfaţa de ieşire).

Fig. 1.5. Controler fuzzy într-o buclă de reglare

Page 11: Sisteme Neuro Fuzzy

11

Fig. 1.6. Structura de tip sistem expert

O variantă mai complexă, proprie sistemelor expert, este prezentată în Fig. 1.6. Prin separarea bazei de reguli de mecanismul de inferenţă se câştigă în flexibilitate, iar în cazul proiectelor mari se poate lucra în paralel asupra celor două blocuri, de către echipe specializate.

În funcţie de natura fuzzy sau non-fuzzy a variabilelor de intrare şi ieşire sunt posibile patru forme de CF, prezentate în tabelul următor. Forma (1), tipică pentru aplicaţiile de reglare automată se mai numeşte şi regulator fuzzy RF.

Informaţia de Informaţia de ieşire intrare NUMERICĂ FUZZY

NUMERICĂ Sisteme de reglare în buclă închisă (1)

Sisteme de asistare a deciziilor în buclă deschisă (3)

FUZZY Sisteme de reglare în buclă închisă (2)

Sist. inteligente de asistare a deciziilor în buclă deschisă (4)

În cazul RF mărimile de intrare provin de la traductoare iar cele de ieşire se adresează diferitelor elemente de execuţie.

Cea mai potrivită formă de reprezentare a inferenţei este în acest caz tabelul de infe-renţă MacVicar-Whelan, care elimină riscul omiterii unor regiuni din cadrul dome-niului de definiţie al variabilelor, dacă este completat corect, fără omiterea unor reguli.

În cazul RF, cea mai populară alegere este regulatorul PD (proporţional-derivativ), care are ca intrări eroarea de reglare εεεε şi derivata ei ε& .

Tabel de inferenţă MacVicar-Whelan pentru un regulator PD

ε ε&

E1 E2 E3 E4 E5

DE1 R1 R4 R7 R10 R13

DE2 R2 R5 R8 R11 R14

DE3 R3 R6 R9 R12 R15

Page 12: Sisteme Neuro Fuzzy

12

În cazul în care alegem pentru εεεε cinci TL iar pentru ε& trei, vom avea un tabel cu 15 reguli de conducere. O modalitate tipică de alegerii TL care alcătuiesc variabilele de intrare este următoarea:

E1 = negativ mare, E2 = negativ mic, E3 = zero, E4 = pozitiv mic, E4 = pozitiv mare

DE1 = pozitiv, DE2 = zero, DE3 = negativ

Principala sarcină a proiectantului este în această fază alegerea ieşirilor aferente fiecă-rei reguli în parte. O regulă specială este regula R8, care corespunde atingerii obiecti-vului reglării: εεεε = 0 şi ε& = 0. Enunţarea acestei reguli este următoarea:

DACĂ εεεε = zero ŞI ε& = 0, ATUNCI se activează regula R8

Proiectantul mai trebuie să aibă în vedere două aspecte esenţiale ale inferenţei:

a) Ce funcţii logice sunt folosite pentru inferenţă, în cazul nostru pentru ŞI? Aşa cum s-a văzut în secţiunea 1.3, foarte des se folosesc operaţiile min-max şi prod-sum.

b) Care va fi efectul regulii activate asupra ieşirii? Pentru aceasta trebuie fuzzyficată şi mărimea de ieşire a controlerului, care în cazul RF este mărimea de comandă.

Dacă ieşirea este fuzzyficată în acelaşi mod ca şi intrările, utilizând TL modelaţi prin MF, atunci controlerul este de tipul Mamdani, purtând numele celui care a realizat prima aplicaţie practică a RF.

O variantă simplificată a acestei versiuni de bază a fost propusă de M. Sugeno, care a fuzzyficat mărimea de ieşire utilizând exclusiv singletonuri. CF nu-şi pierde în acest fel caracterul fuzzy, dar implementările practice se simplifică semnificativ.

1.6. Defuzzyficarea

Ultima, dar nu şi cea mai puţin importantă dintre operaţiile dintr-un FC, este defuzzyfi-carea, prin care mulţimea fuzzy obţinută prin inferenţă este transformată într-o mărime fermă şi transferată ieşirii. Necesitatea defuzzyficării apare pentru că mai multe reguli pot fi active în acelaşi timp, fiind necesară fie alegerea uneia singure dintre ele, fie sintetizarea unei ieşiri care să ţină cont într-o anumită măsură de fiecare dintre ele.

Dacă în cazul fuzzyficării şi a inferenţei există aproape un consens asupra utilizării par-tiţiilor fuzzy modelate prin forme triunghiulare sau trapezoidale, respectiv asupra me-todei min-max, în cazul defuzzyficării există două metode de defuzzyficare cu o popu-laritate largă, MOM (mean-of-maxima) şi COG (center-of-gravity), fiecare la rândul ei prezentând mai multe variante. Alegerea metodei de defuzzyficare se face în funcţie de mai multe criterii, dintre care cele mai importante sunt:

♦ caracteristicile MF de ieşire Y = {y1 , y2 , ... yn} şi ale elementului de execuţie;

♦ viteza cerută de aplicaţie şi capacitatea de calcul disponibilă.

Page 13: Sisteme Neuro Fuzzy

13

1) Metoda maximului constă din atribuirea pentru ieşirea fermă yo a valorii obţinută prin alegerea elementului cu cel mai înalt grad de apartenenţă din componenţa MF de ieşire: Y (yo) = max { yi (y) y∈Y, i=1 ... n }.

La stabilirea acestei valori concurează toate VL active yi, fiind aleasă doar cea având contribuţia cea mai puternică. Metoda se poate aplica numai în cazul în care se poate stabili o valoare unică yo, adică atunci când Y are în componenţă MF triunghiulare sau singleton-uri. În cazul în care există mai multe MF având grade de apartenenţă maxime cu valori egale se poate alege la întâmplare una dintre ele sau se poate face media valo-rilor ferme rezultate din fiecare. În cazul în care Y(y) nu prezintă maxime punctuale (de exemplu în cazul formelor trapezoidale), se pot aplica variantele: primul dintre

maxime FOM (first of maxima), ultimul dintre maxime LOM (last of maxima) sau mij-

locul maximelor MOM.

Fig. 1.7. Exemple de defuzzyficare după metoda maximului

2) Metoda centrelor de greutate COG este metoda de defuzzyficare cea mai sensibilă, care ţine seama, într-o manieră ponderată, de influenţa fiecărui termen lingvistic al ieşi-rii, considerând toate valorile posibile pentru gradele de apartenenţă. Prin COG dome-niul valorilor discrete de ieşire devine continuu.

Fig. 1.8. O comparaţie între defuzzyficările MOM şi COG

După cum se vede în fig. 1.8 COG este influenţată şi de VL y1, valoarea comenzii de la ieşire fiind mai mică decât în cazul MOM, care ţine seama numai de y2.

Mamdani Sugeno

Page 14: Sisteme Neuro Fuzzy

14

2. Tool-kit-ul Fuzzy Inference System

2.1. Lansarea FIS

Principalul instrument din MATLAB prin care se pot construi sisteme fuzzy este inter-faţa grafică (graphic user interface) numită Fuzzy Inference System FIS. FIS aparţine toolkit-ului Fuzzy Toolbox din componenţa pachetului MATLAB. FIS poate fi lansată fie din fereastra de comenzi (command window) tastând fuzzy, fie din SIMULINK.

Editorul FIS afişează pe fiecare dintre cele trei elemente ale unui SF generic: fuzzy-ficarea, inferenţa şi defuzzyficarea. Fereastra principală FIS este prezentată în Fig. 2.1.

Fig. 2.1. Fereastra principală FIS

La deschiderea FIS-ului sunt implicite o variabilă de intrare input 1, una de ieşire out-

put 1 şi blocul de inferenţă Mamdani. Aşa cum vom vedea, inferenţa Mamdani poate fi înlocuită cu inferenţa Sugeno.

Numele variabilelor selectate poate fi tastat în căsuţa de dialog Name.

Page 15: Sisteme Neuro Fuzzy

15

2.2. Fuzzyficarea Blocul de fuzzyficare primeşte la intrare valori ferme şi oferă la ieşire valori fuzzy. Variabilele fuzzy sunt construite sub forma de cadre cognitive sau de partiţii fuzzy.

Setarea unei variabile de intrare începe printr-un dublu click pe pictograma variabilei. Pentru input 1 se va activa editorul de funcţii de apartenenţă din figura următoare.

Fig. 2.2. Variabila de intrare input 1

Comenzile necesare pentru editare se găsesc în meniul Edit al acestei ferestre. Tastând comanda Add MFs obţinem o căsuţă de dialog cu opţiunile necesare: numărul de ter-meni lingvistici TL şi formele funcţiilor de apartenenţă fiecăruia. Pentru formele func-ţiilor de apartenenţă există mai multe opţiuni:

trimf (triunghiulară), trapmf (trapezoidală), gaussmf (gauss), etc.

Utilizatorul poate defini şi funcţii de apartenenţă proprii, de tip custom.

Dacă dorim să construim o variabilă cu 5 TL vom obţine următoarea fereastră.

Page 16: Sisteme Neuro Fuzzy

16

Fig. 2.3. Partiţia fuzzy aferentă unei variabile de intrare

Fiecare funcţie de apartenenţă poate fi acum editată. Parametrii formei (în cazul triun-ghiului, cele trei puncte marcate în Fig. 2.3) pot fi tastate în căsuţa Params sau pozi-ţionate cu ajutorul mouse-ului. Fiecare MF poate fi etichetată prin căsuţa Name. De exemplu, în loc de mf1, mf2, mf3, mf4 şi mf5 putem tasta zero, small, medium, great şi very great. Domeniul variabilei poate fi de asemenea definit cu ajutorul căsuţei de dialog Range. De exemplu, dacă dorim să fuzzyficăm variabila glicemie (concentraţia de zahăr din sânge), domeniul de definiţie ar trebui schimbat de la [0 1] cum este cel implicit din Fig. 2.3 la [0 200].

Părţi din domeniul de definiţie pot fi selectate pentru afişare cu ajutorul căsuţei display

range. O recomandare importantă: domeniul de definiţie al variabilelor fuzzy trebuie

să fie mai extins decât cel cerut de aplicaţie. În caz contrar, unele dintre metodele de inferenţă pot produce erori în vecinătatea limitelor domeniului! Aceasta se realizează dacă range este mai larg decât display range iar funcţia de apartenenţă are valoarea 1 în exteriorul valorilor din display range, care defineşte de fapt domeniul aplicaţiei.

Noi variabile de intrare pot fi adăugate prin meniul Edit din fereastra principală FIS utilizând comanda Add input.

Page 17: Sisteme Neuro Fuzzy

17

2.3. Defuzzyficarea

Etapa de defuzzyficare produce valori ferme pornind de la valori fuzzy. Această ope-raţie, opusă fuzzyficării, este necesară doar când avem nevoie de valori ferme la ieşire, de exemplu în cazul sistemelor de reglare (viteză, poziţie, presiune, etc). Când sistemul fuzzy trebuie să producă ieşiri lingvistice, de exemplu în cazul sistemelor de decizie de tipul expert, defuzzyficarea nu mai este necesară şi ieşirea poate rămâne ca variabilă fuzzy.

FIS poate produce inferenţe atât de tip Mamdani cât şi de tip Sugeno. Aşa cum se ob-servă în §2.4, regulile de conducere ale inferenţei pot avea ca rezultat fie valori fuzzy în cazul inferenţei Mamdani, fie valori ferme în cazul inferenţei Sugeno. Evident siste-mele fuzzy de tip Sugeno sunt mai simple decât cele de tip Mamdani. De aceea infe-renţa Sugeno este recomandabilă când la ieşire avem nevoie de valori ferme. Când la ieşire avem nevoie de valori lingvistice inferenţa Mamdani este singura posibilă. Ale-gerea tipului de inferenţă trebuie făcută chiar la începutul aplicaţiei, din fereastra prin-cipală FIS¸ prin meniul File: fie New Mamdani FIS, fie New Sugeno FIS.

Fig. 2.4. Fuzzyficarea Mamdani

Page 18: Sisteme Neuro Fuzzy

18

Fuzzyficarea Mamdani este ilustrată în Fig. 2.4 pentru cazul unui CC cu trei VL de formă Gauss-iană mf1, mf2 şi mf3.

Sistemul Sugeno este ilustrat în Fig. 2.4, pentru cazul unei variabile de ieşire cu trei TL definită în domeniul [0 1]: zero (singletonul 0), small (singletonul 0.5, cel selectat în figură) şi great (singletonul 1).

Fig. 2.5. Fuzzyficarea Sugeno

Metoda de defuzzyficare se allege din fereastra principală FIS (Fig. 2.1). Putem alege între defuzzificarea de tip COG (centroid în terminologia FIS) şi defuzzyficarea MOM (Mean of Maxima).

Page 19: Sisteme Neuro Fuzzy

19

2.4. Inferenţa fuzzy

Partea centrală a unui sistem fuzzy constă din mecanismul său de inferenţă, care este realizat de către baza de reguli. Blocul de inferenţă permite scrierea rapidă şi uşoară a regulilor printr-un tabel McVicar-Whelan. Tipul inferenţei este specificat prin alegerea normei t (and method) şi normei s (or method) în fereastra principală FIS (Fig. 2.1).

Fig. 2.6. Fereastra de inferenţă FIS

Aşa cum se poate vedea în Fig. 2.5 blocul conţine butoane de editare care permit adău-garea de reguli noi Add rule precum şi ştergerea Delete rule sau modificarea regulilor existente Change rule. La formularea regulilor se pot utiliza şi opţiunile not pentru complementare şi none atunci când variabila respectivă nu este implicată. Totodată se poate alege între formele conjunctivă and sau disjunctivă or.

Două instrumente importante pentru aplicaţii, care vor fi utilizate în cele ce urmează se pot accesa din meniul View:

- View rules prin care se văd în timp real regulile activate şi gradul lor de activare;

- View surface prin care se vizualizează suprafaţa de comandă realizată de aplicaţie.

Page 20: Sisteme Neuro Fuzzy

20

2.5. Posibilităţi de utilizare a FIS

O primă observaţie extrem de utilă este aceea că în general aplicaţiile Matlab, şi mai ales FIS, necesită o atenţie deosebită la salvarea fişierelor. Opţiunile de salvare se gă-sesc ca de obicei în meniul File. Aplicaţiile FIS sunt salvate ca fişiere cu extensia *.fis, pe hard disk, pe dispozitive externe sau în workspace. În această situaţie, la terminarea sesiunii de lucru este necesară şi salvarea workspace-ului, ca fişier *.mat.

Cea mai directă variantă de utilizare a FIS este prin intermediul ferestrei de comenzi (command window). Pentru aceasta toolbox-ul fuzzy include un set larg de comenzi aferente FIS: evalfis, ruleviewer, gensurf, readfis, etc. prin care se pot accesa şi ajusta toate componentele FIS. Sintaxa lor poate fi studiată cu ajutorul comenzii Help.

Ce mai productivă modalitate de lucru cu FIS este însă obţinută prin Simulink-Matlab. Tool-kit-ul Simulink permite modelarea vizuală pe calculator, prin tehnica drag-and-

drop, astfel încât aplicaţiile pot fi realizate extrem de eficient. În acest fel fişierele *.fis pot fi incluse în modelele Simulink şi pot fi testate în aplicaţii beneficiind de biblioteca de funcţii predefinite care a plasat Simulink pe poziţia dominantă a segmentului său de piaţă.

Fig. 2.7. Funcţiile disponibile în biblioteca Fuzzy Logic Toolbox din Simulink

Pentru a putea utiliza cele două controlere disponibile Fuzzy Logic Controller şi Fuzzy

Logic Controller with Ruleviewer trebuie ca fişierul *.fis să fie instalat în workspace.

Page 21: Sisteme Neuro Fuzzy

21

Controlerului Simulink este asociat fişierului *.fis cu ajutorul căsuţei de dialog care apare în urma unui dublu click. În căsuţă trebuie tastat numele fişierului *.fis din work-

space.

Blocurile Fuzzy Logic Controller au o singură intrare, motiv pentru care vom apela şi la un bloc de multiplexare Mux. Ordinea în care apar variabilele de intrare în FIS, de sus în jos, trebuie respectată şi la conectarea multiplexorului.

Page 22: Sisteme Neuro Fuzzy

22

3. Implementarea FIS a unui regulator PD

3.1. Formularea temei proiectului

În cele ce urmează se va realiza un regulator fuzzy de tip PD, atât în varianta Mamdani cât şi în varianta Sugeno. Configuraţia acestui regulator este următoarea:

• Intrări: eroarea e, şi derivata erorii de

• Ieşire: comanda c

Fuzzyficarea va fi realizată după următoarea formulă:

� pentru intrarea e, şapte TL: NG, NM, NS ,Z ,PS ,PM şi PG

� pentru intrarea de, cinci TL: NG, NS, Z, PS şi PG

� pentru ieşirea c: cinci TL - NG, NS, Z, PS şi PG

Etichetele lingvistice utilizate sunt tradiţionale:

NG – negative great/negativ mare

NM – negative medium/negativ mediu

NS – negative small/negativ mic

Z – zero/zero PS – positive small/pozitiv mic

PM – positive medium/pozitiv mediu

PG – positive great/pozitiv mare.

Se vor utiliza exclusiv variabile normalizate, adaptarea la procesul condus realizându-se prin trei factori de scalare: factorul de scalare pentru eroare FSe, factorul de scalare pentru derivata erorii FSde şi factorul de scalare pentru comandă FSc.

Scopul final al acestui proiect este realizarea unui regulator de uz general care să poată funcţiona într-o gamă largă de aplicaţii. El va fi testat în urma implementării Simulink pentru diferite procese conduse.

Fig. 3.1. Factorii de scalare ai regulatorului

Page 23: Sisteme Neuro Fuzzy

23

3.2. Implementarea regulatorului Mamdani

Fuzzyficarea variabilelor este prezentată în figura următoare.

Fig. 3.2. Fuzzyficarea

Page 24: Sisteme Neuro Fuzzy

24

Baza de reguli propusă este următoarea:

1. If (e is NG) then (c is PG)

2. If (e is NM) and (de is NG) then (c is PG)

3. If (e is NM) and (de is NS) then (c is PG)

4. If (e is NM) and (de is Z) then (c is PS)

5. If (e is NM) and (de is PS) then (c is PS)

6. If (e is NM) and (de is PG) then (c is Z)

7. If (e is NS) and (de is NG) then (c is PG)

8. If (e is NS) and (de is NS) then (c is PS)

9. If (e is NS) and (de is Z) then (c is PS)

10. If (e is NS) and (de is PS) then (c is Z)

11. If (e is NS) and (de is PG) then (c is NS)

12. If (e is Z) and (de is NG) then (c is PS)

13. If (e is Z) and (de is NS) then (c is PS)

14. If (e is Z) and (de is Z) then (c is Z)

15. If (e is Z) and (de is PS) then (c is NS)

16. If (e is Z) and (de is PG) then (c is NS)

17. If (e is PS) and (de is NG) then (c is PS)

18. If (e is PS) and (de is NS) then (c is Z)

19. If (e is PS) and (de is Z) then (c is NS)

20. If (e is PS) and (de is PS) then (c is NS)

21. If (e is PS) and (de is PG) then (c is NG)

22. If (e is PM) and (de is NG) then (c is Z)

23. If (e is PM) and (de is NS) then (c is NS)

24. If (e is PM) and (de is Z) then (c is NS)

25. If (e is PM) and (de is PS) then (c is NG)

26. If (e is PM) and (de is PG) then (c is NG)

27. If (e is PG) then (c is NG)

Deşi nu avem decât 27 de reguli, baza de reguli corespunde unui tabel de 35 de reguli, deoarece regulile 1 şi 27 au fost editate cu ajutorul opţiunii none: indiferent de valoa-rea variabilei de, starea ieşirii este decisă doar de către e.

Suprafaţa de comandă realizată prin defuzzyficarea COG este prezentată în Fig. 2.9. Defuzzyficarea MOM produce suprafaţa de comandă din Fig. 2.10.

Observaţie: Regulile au fost formulate conform logicii lingvistice „dacă eroarea are un anumit semn, atunci comanda trebuie să fie de sens opus”. De exemplu dacă (e este

NG) atunci (c este PG). Din acest motiv semnul comenzii c trebuie schimbat (se înmul-ţeşte cu constanta -1).

Page 25: Sisteme Neuro Fuzzy

25

Fig. 3.3. Suprafaţa de comandă cu defuzzyficare COG

Fig. 3.4. Suprafaţa de comandă cu defuzzyficare MOM

Se remarcă faptul că suprafaţa de comandă generată prin defuzzyficarea COG este mai netedă comparativ cu defuzzyficarea MOM.

Cu cât mai multe reguli există în baza de reguli, cu atât mai multe puncte de fixare a suprafeţei de comandă avem la dispoziţie, dar pe de altă parte implementarea este mai greoaie.

Implementarea Simulink este prezentată în Fig. 2.11. Schimbarea semului comenzii datorată formulării regulilor se realizează prin factorul de scalare FSc. Blocul de saturare care limitează acţiunea regulatorului are limitele ±10.

Page 26: Sisteme Neuro Fuzzy

26

out

c

e

de

1

s +2s+12

Transfer Fcn

Step

ScopeSaturationFuzzy Logic

Controller

with Ruleviewer

1

FSe

1

FSde

-10

FSc

du/dt

Derivative

Fig. 3.5. Implementarea Simulink a regulatorului fuzzy PD

Răspunsul indicial din figura următoare ilustrează comportarea sistemului. Notaţiile folosite sunt: intrarea u, ieşirea out şi comanda c.

0 1 2 3 4 5 6 7 8 9 100

0.5

1

u,

ou

t

0 1 2 3 4 5 6 7 8 9 10-5

0

5

10

t [s]

c

out

Fig. 3.6. Răspunsul indicial al regulatorului Mamdani cu baza de reguli 7 x 5

Se remarcă eroarea staţionară precum şi chattering-ul care afectează regimul staţionar, datorate lipsei efectului integrativ. Pe de altă parte regimul tranzitoriu este ferm, fără suprareglaje sau oscilaţii.

În secţiunea următoare acest regulator Mamdani va fi comparat cu un regulator Sugeno care diferă în principal doar prin fuzzyficarea variabilei/variabilelor de ieşire. Orice controler Mamdani poate fi convertit automat într-un controler Sugeno prin comanda mam2sug lansată din fereastra de comandă MATLAB.

Page 27: Sisteme Neuro Fuzzy

27

3.3. Implementarea regulatorului Sugeno

O simplificare importantă a regulatorului anterior se obţine în varianta Sugeno. În plus reducem baza de reguli la dimensiunea 5 x 5, utilizând numai 5 TL pentru e.

Fig. 3.7. Fuzzyficarea regulatorului PD Sugeno; de este identic cu e

1. If (e is NG) then (c is PG)

2. If (e is NS) and (de is NG) then (c is PG)

3. If (e is NS) and (de is NS) then (c is PG)

4. If (e is NS) and (de is Z) then (c is PS)

5. If (e is NS) and (de is PS) then (c is Z)

6. If (e is NS) and (de is PG) then (c is NS)

7. If (e is Z) and (de is NG) then (c is PG)

8. If (e is Z) and (de is NS) then (c is PS)

9. If (e is Z) and (de is Z) then (c is Z)

10. If (e is Z) and (de is PS) then (c is NS)

11. If (e is Z) and (de is PG) then (c is NG)

12. If (e is PS) and (de is NG) then (c is PS)

13. If (e is PS) and (de is NS) then (c is Z)

14. If (e is PS) and (de is Z) then (c is NS)

15. If (e is PS) and (de is PS) then (c is NG)

16. If (e is PS) and (de is PG) then (c is NG)

17. If (e is PG) then (c is NG)

Fig. 3.8. Baza de reguli a regulatorului PD Sugeno

Page 28: Sisteme Neuro Fuzzy

28

Suprafaţa de comandă rezultată este prezentată în figura următoare.

Fig. 3.9. Suprafaţa de comandă a regulatorului PD Sugeno

Se remarcă o asemănare în linii mari cu suprafaţa de comandă a regulatorului Mamdani care are însă mai multe puncte de ajustare. Răspunsul indicial este foarte asemănător cu cel din Fig. 3.6, al regulatorului Mamdani cu baza de reguli de dimensiune 7 x 5. Acest fapt justifică utilizarea regulatorului Sugeno în aplicaţiile de reglare în buclă închisă, deoarece este mai simplu şi mai rapid decât regulatorul Mamdani, în timp ce perfor-manţele lor sunt perfect comparabile. Se remarcă lipsa chatteringului, asociată însă cu o eroare staţionară mai mare, comportament cauzat de reducerea bazei de reguli.

0 1 2 3 4 5 6 7 8 9 100

0.5

1

u,

ou

t

0 1 2 3 4 5 6 7 8 9 10-10

-5

0

5

10

t [s]

c

Fig. 3.10. Răspunsul indicial al regulatorului Sugeno cu baza de reguli 5 x 5

Page 29: Sisteme Neuro Fuzzy

29

4. Regulatoarele fuzzy-interpolative

4.1. Sistemele fuzzy-interpolative

În urma executării simulărilor cu fişiere de tip *.fis se observă că în general simulările necesită mult timp iar în unele cazuri se produc chiar blocaje, în funcţie şi de configu-raţia calculatorului şi de parametrii aleşi pentru simulare (metoda de integrare, erori admisibile, etc.) şi de parametrii sistemului de reglare. O metodă eficace de înlăturare a cestui aspect, fără însă a renunţa la avantajul fundamental al sistemelor fuzzy, adică la reprezentarea lingvistică, este apelul la conceptul de sistem fuzzy-interpolativ SFI.

Un SFI este un sistem fuzzy care poate fi direct echivalat cu un tabel de căutare TC cu interpolare liniară (look-up-table LUT). Un TC este una dintre structurile de date cele mai des întâlnite în ştiinţa calculatoarelor, constând dintr-o arie n–dimensională sau o arie asociativă n–dimensională. Utilizarea TC în locul altor algoritmi de calcul al func-ţiilor algebrice, ca de exemplu seria Taylor, necesită o capacitate mare de memorie, dar oferă în schimb o accelerare semnificativă a calculului. În esenţă calculul constă din căutarea în tabel a unor valori şi interpolarea lor, fie prin interpolări spline sau polino-miale, fie cel mai simplu, prin interpolări liniare. Deoarece capacitatea memoriilor a crescut continuu, la fel ca şi viteza şi fiabilitatea lor, în timp ce preţul lor este în conti-nuă scădere, utilizarea TC este tot mai populară.

În aplicaţiile noastre vom apela la un TC bidimensional cu două intrări e şi de şi o ieşi-re c. În cazul regulatorului Mamdani TC poate fi modelat printr-o matrice cu dimensiu-nea 7 x 5 iar in cazul regulatorului Sugeno printr-o matrice cu dimensiunea 5 x 5. Un astfel de TC este disponibil în Simulink sub forma prezentată în Fig. 4.1.

Fig. 4.1. Tabelul de căutare bidimensional din biblioteca Simulink

Page 30: Sisteme Neuro Fuzzy

30

Coordonatele nodurilor de interpolare sunt fixate de valorile numerice înscrise în vec-torii corespunzători celor două intrări row şi column iar valorile din tabel table data definesc ieşirile tabelului. Valorile vectorilor de intrare trebuie înscrise în ordine cres-cătoare. Dacă intrările depăşesc domeniul de definiţie calculul ieşirii se poate face fie prin extrapolare fie prin limitare (păstrarea înafara tabelului a valorilor marginale).

Fig. 4.2. Ilustrarea funcţionării unui regulator PD fuzzy-interpolativ

Page 31: Sisteme Neuro Fuzzy

31

Trecerea de la cazul bidimensional PD mai uşor de reprezentat mental la cazurile n-dimensionale, de exemplu la regulatorul tridimensional de tip PID, se poate ilustra prin figura următoare, în care regulatoarele PD pot fi asemănate cu paginile unei cărţi.

Fig. 4.3. Regulatorul fuzzy-interpolativ PID

Sintaxa care trebuie respectată în această situaţie este următoarea:

table: cat(3, [pagina ∫∫∫∫e<0], [pagina ∫∫∫∫e=0], [pagina ∫∫∫∫e>0])

4.1. Implementările fuzzy-interpolative

Implementările fuzzy-interpolative ale regulatoarelor PD Mamdani cu 35 de reguli şi Sugeno cu 25 de reguli prezentate anterior sunt următoarele:

Regulatorul Mamdani:

row (e): [-1 -0.3 -0.1 0 0.1 0.3 1]

column (de): [-1 -0.1 0 0.1 1]

table (c): [-1 -1 -1 -1 -1; -1 -1 -0.3 -0.3 0; -1 -1 -0.3 0 0.3; -0.3 -0.3 0 0.3 0.3;

-0.3 0 0.3 1 1; 0 0.3 0.3 1 1; 1 1 1 1 1]

Regulatorul Sugeno:

row (e): [-1 -0.1 0 0.1 1]

column (de): [-1 -0.1 0 0.1 1]

table (c): [-1 -1 -1 -1 -1; -1 -1 -0.3 0 0.3; -0.3 -0.3 0 0.3 0.3; -0.3 0 0.3 1 1; 1 1 1 1 1]

Page 32: Sisteme Neuro Fuzzy

32

1

s +2s+12

Transfer Fcn

Step

ScopeSaturationLookup

Table (2-D)

1

FSe

1

FSde

25

FSc

du/dt

Derivative

Fig. 4.4. Implementarea Simulink a regulatorului PD fuzzy-interpolativ (7 x 5)

Page 33: Sisteme Neuro Fuzzy

33

După implementarea celor două regulatoare se poate constata cu uşurinţă că simulările nu mai ridică absolut nici o problemă computaţională, ele se derulează practic instan-taneu, fără riscul blocajelor. Spre deosebire de cazul utilizării fişierului *.fis în care pentru anumite valori ale parametrilor sistemului de reglare se produc blocaje, acum putem încerca orice combinaţie de parametri ai sistemului de reglare, de exemplu creş-terea factorului de scalare de la ieşire de la 10 ca şi în Fig. 3.5 la 25. Comportarea regu-latoarelor cu 35 şi cu 25 de reguli la un semnal de test reprezentat cu linie întreruptă se poate analiza în figurile următoare.

0 1 2 3 4 5 6 7 8 9 10

-1

-0.5

0

0.5

1

t [s]

u &

out

Fig. 4.5. Un răspuns în timp al regulatorului PD fuzzy cu 35 de reguli

0 1 2 3 4 5 6 7 8 9 10

-1

-0.5

0

0.5

1

t [s]

u &

out

Fig. 4.6. Un răspuns în timp al regulatorului PD fuzzy cu 25 de reguli

Page 34: Sisteme Neuro Fuzzy

34

Se remarcă marea asemănare dintre cele două răspunsuri în timp, argument în favoarea utilizării variantei mai simple, cu 25 de reguli. Numărul de reguli în sine este însă mai puţin relevant decât modul în care aceste reguli sunt formulate şi ajustate. După cum se observă, răspunsurile suportă multe îmbunătăţiri.

Diferenţa majoră a regulatoarelor fuzzy faţă de regulatoarele convenţionale este numă-rul mult mai mare de mecanisme de ajustare care pot influenţa performanţele. Aceasta le oferă un avantaj fundamental, mai ales în aplicaţiile dificile sau despre care nu avem cunoştinţe suficiente pentru a le trata în mod optimal, dar pe de altă parte presupune o ajustare mai laborioasă. Dacă în cazul unui regulator PD liniar sunt doar doi parametri de ajustare, la care putem adăuga factorii de scalare de la intrare, în cazul regulatorului fuzzy-interpolativ putem identifica cel puţin următorii parametri de ajustare: factorul de scalare de la ieşire FSc, fuzzyficarea de la intrare care cuprinde 25 de noduri de interpolare şi fuzzyficarea de la ieşire cu 5 valori. În cazul unui sistem fuzzy obişnuit mai intervin şi formele funcţiilor de apartenenţă, prin posibilitatea utilizării funcţiilor Gauss, sigmoidale, etc.

În figura următoare se prezintă rezultatele unei ajustări orientate în direcţia reducerii suprareglajelor din Fig. 4.6, alte obiective fiind la fel de uşor de atins.

0 1 2 3 4 5 6 7 8 9 10

-1

-0.5

0

0.5

1

t [s]

u &

out

Fig. 4.6. Un răspuns în timp cu minimizarea suprareglajelor

Studenţii sunt invitaţi să încerce diferitele mecanisme de ajustare posibile şi efectele

lor asupra performanţelor regulatorului.

Page 35: Sisteme Neuro Fuzzy

35

5. Regulatoarele neuro-fuzzy

5.1. Reţelele neuronale

Mulţimea de posibilităţi de ajustare a controlerelor fuzzy creează complicaţii, care se pot evita prin automatizarea elaborării relaţiei fuzzy. Sinteza automată sau chiar auto-sinteza sistemelor de comandă poate fi obţinută prin metode ale inteligenţei artificiale.

Ce mai promiţătoare abordare constă din fuzionarea logicii fuzzy cu reţelele neuronale

RN. În această abordare mulţimile fuzzy sunt utilizate în reprezentarea cunoştinţelor, în timp ce reţelele neuronale sintetizează regulile fuzzy prin învăţare pe bază de exem-

ple. Controlerele neuro-fuzzy astfel obţinute sunt capabile de a rezolva unele dintre cele mai complicate sarcini, cum ar fi recunoaşterea imaginilor, fără intervenţia sub-stanţială a omului.

RN sunt alcătuite din mulţimi de elemente de prelucrare a informaţiei - neuroni - inter-conectaţi într-o reţea. Un neuron i are n intrări, x1

i, x2i, ... , xn

i şi o ieşire yi, fiecare aparţinând mulţimii numerelor reale. O legătură ieşire-intrare dintre nodurile reţelei este reprezentată prin ponderea sinaptică, valoare reală care ponderează efectul semna-lului de intrare în neuronul receptor. Neuronul va fi afectat de n ponderi sinaptice: w1

i, w2

i, ... , wni. Ponderile pot fi excitatoare dacă wi > 0 sau inhibatoare dacă wi < 0. Acti-

varea neuronului se defineşte prin suma ponderată a semnalelor de intrare: n

S = ∑∑∑∑ wji xj

i (5.1) j=1 Ieşirea neuronului va fi dată de funcţia neuronală (de ieşire) yi = f(s), care poate avea diferite forme: treaptă, rampă, funcţii sigmoidale, etc.

Neuronii sunt aranjaţi în straturi, capacitatea de reprezentare a reţelei depinzând de mărimea şi de numărul straturilor. Dacă funcţiile neuronale sunt norme t sau s se obţin neuroni logici de tip AND şi OR. Cu aceştia se pot construi reţele multistrat capabile să modeleze o mare varietate de funcţii logice. O astfel de structură (denumită şi pro-

cesor logic), rezultată prin analogie cu logica booleeană a fost propusă de K. Hirota şi W. Pedrycz în 1991. Ea cuprinde trei straturi de neuroni (de intrare, de ieşire şi stratul ascuns), fiecare strat conţinând neuroni de acelaşi tip.

Controlerul neuro-fuzzy poate fi grefat pe procesorul logic neuronal, fiecare variabilă de intrare reprezentând gradul de apartenenţă a unei mărimi de intrare la TL corespun-zător din CC aferent mărimii respective. Prin topologia lor, sinapsele codifică regulile

de conducere de tip dacă ...atunci. În cazul procesorului logic de mai sus, fiecare nod din stratul intermediar poate fi considerat ca şi corespunzând unei clauze, fiind analog unui minitermen din cazul exprimării analitice prin forma canonică disjunctivă a func-ţiilor logice. În cazul general cunoştinţele sunt “împărţite” între neuroni şi sinapse, astfel că este cvasiimposibilă exprimarea inteligibilă a relaţiei fuzzy conţinută în reţea.

Page 36: Sisteme Neuro Fuzzy

36

AND x1 AND OR Variabile de intrare y Ieşire x2 AND Strat de intrare Strat ascuns Strat de ieşire Fig. 5.1 Procesor logic cu reţea neuronală RN sunt capabile de a învăţa pe bază de exemple. Exemplele constau din seturi de mă-rimi de intrare şi mărimile de ieşire pe care dorim să le obţinem în cazul acelor intrări. Învăţarea este de tip parametric, constând din ajustarea ponderilor sinaptice, astfel încât un anumit indice de performanţă (de exemplu distanţa euclidiană) să fie optimizat. Dintre parametrii algoritmilor de învăţare, esenţiali sunt convergenţa, fără de care nu s-ar obţine soluţii şi factorul de învăţare indicând viteza de soluţionare.

Intrare 1 Ieşire Intrare 2 Evaluarea regulilor şi defuzzyficarea Fuzzyficarea Baza de reguli Fig. 5.2 Controler neuro-fuzzy

N

Z

P

N

Z

P

Page 37: Sisteme Neuro Fuzzy

37

5.2. Descrierea toolkitului ANFIS

Tool-kit-ul destinat implementării sistemelor neoro-fuzzy în Matlab se numeşte ANFIS (adaptive neuro-fuzzy inference system). Fiind dat un set de date intrare-ieşire de antre-nare, ANFIS generează un fişier de tip *.fis având parametrii astfel ajustaţi încât să producă un răspuns identic cu datele de antrenare. Învăţarea se realizează fie printr-un algoritm de tip backpropagation fie printr-o variantă a metodei celor mai mici pătrate.

Metodele de tip backpropagation urmează următoarele etape:

1. Se introduce în RN setul de date de antrenare.

2. Se compară ieşirile calculate cu setul de date de antrenare. Se calculează erorile pentru fiecare dintre neuronii de ieşire.

3. Pentru fiecare neuron de ieşire se calculează o valoare şi un factor de scalare, care ar produce ieşirea dorită pentru întreaga reţea. Pe baza aceasta se calculează erorile locale la nivelul fiecărui neuron de ieşire.

4. Se ajustează ponderile fiecărui neuron în sensul scăderii erorilor locale.

5. Neuronii din stratul precedent care produc cele mai mari erori locale sunt ponderaţi în sensul scăderii ponderii lor.

6. Se repetă etapele 3, 4 şi 5 asupra neuronilor din stratul anterior.

Tool-kit-ul ANFIS are un caracter preponderant didactic, prezentând o serie de limitări:

• Se aplică numai sistemelor Sugeno cu funcţii de apartenenţă liniare sau singleton;

• Se aplică numai sistemelor cu o singură ieşire;

• Nu suportă funcţii de apartenenţă, norme t-s sau defuzzyficări definite de utilizator;

Lansarea toolkit-ului se face prin comanda anfisedit, obţinându-se interfaţa grafică din figura 5.3. Rolul principalelor elemente de acţionare este prezentat în figură.

Operaţiile pe care interfaţa ANFIS le poate executa sunt următoarele:

- Încărcarea datelor de antrenare, testare şi verificare, sub controlul comenzilor din zona Load Data.

- Generarea sau încărcarea unui model iniţial FIS cu comenzile din zona Generate FIS.

- Vizualizarea modelului FIS (atât cel iniţial cât şi cel rezultat în urma antrenării reţelei prin butonul Structure.

- Alegerea parametrilor metodei de optimizare (backpropagation sau hibridă).

- Alegerea numărului de iteraţii de antrenare (traning epochs) şi eroarea de antrenare.

- Antrenarea reţelei neuronale, comandată prin butonul Train Now. Procesul iterativ de învăţare automată ajustează parametrii FIS-ului. Se afişează erorile fiecărei iteraţii.

Page 38: Sisteme Neuro Fuzzy

38

Fig. 5.3. Interfaţa grafică ANFIS

- Ieşirea FIS-ului este vizualizată şi comparată cu datele de antrenare, verificare şi tes-tare, după acţionarea butonului Test Now.

Prin intermediul barei de meniu ANFIS se pot încărca sau salva fişierele FIS, se poate deschide un nou controler Sugeno sau accesa alte interfeţe grafice din componenţa Matlab.

Zona de afişare

Operaţii cu fişire

.fis

Undo Deschidere şi editare fişire .fis

Afişare parametri: nr. de intrări/ieşiri şi funcţii de apar-

tenenţă

Structura intrare/ ieşire a FIS-ului

Testarea FIS-ului cu datele de antre-

nare

Încărcare sau gene-rare fişier .fis

Antrenare FIS după setarea metodei de optimizare

Ştergere date de antrenare

Introdu-cerea

datelor de antre-

nare

Legendă: - Date de testare: linie punctată albastră; - Date de antrenare: linie din o albastre; - Date de verificare: linie din + albastre; - Ieşirea FIS-ului: linie din * roşii;

Page 39: Sisteme Neuro Fuzzy

39

5.3. Implementarea ANFIS a unui regulator PD Sugeno

În continuare se va exemplifica optimizarea regulatorului PD Sugeno descris în §3.3 cu ajutorul ANFIS. În urma încărcării fişierului .fis corespunzător, se obţine reţeaua neu-ronală din figura 5.4.

Fig. 5.4. Structura RN corespunzătoare regulatorului PD Sugeno

Corespondenţa dintre RN şi controlerul Sugeno este evidentă:

- intrările input corespund erorii e şi derivatei sale de.

- stratul inputmf corespunde termenilor lingvistici rezultaţi prin fuzzyficare.

- stratul rule - outputmf asociază câte un neuron fiecărei reguli de conducere.

- ieşirea output corespunde ieşirii controlerului Sugeno.

Principala problemă care se ridică în faţa proiectării unei aplicaţii ANFIS este alegerea seturilor de date de antrenare, testare şi validare.

Page 40: Sisteme Neuro Fuzzy

40

În vederea optimizării regulatorului fuzzy PD s-a realizat un set de date de antrenare prin prelevarea datelor obţinute din simularea funcţionării sistemului de reglare pentru cazul răspunsului indicial. Datele au fost prelevate chiar de la intrările şi ieşirea regula-torului, deoarece ANFIS generează doar fişierul .fis, el neputând fi extins la întreaga aplicaţie. A rezultat un fişier de date cu dimensiunea 25 x 3. Parametrii simulării gene-ratoare de date de antrenare pot fi astfel aleşi încât să reprezinte o îmbunătăţire a func-ţionării, care nu ar fi putut fi obţinută prin ajustarea manuală. Convergenţa învăţării şi parametrii ANFIS-ului se observă în fig. 5.5.

Fig. 5.5. Convergenţa învăţării pentru un set de date reprezentând un răspuns indicial

Din păcate regulatorul astfel obţinut produce un răspuns indicial de slabă calitate, cu o tendinţă înspre suprareglaj şi oscilaţii pe durata regimurilor tranzitorii. Aşa cum se va observa în continuare, principala cale de îmbunătăţire a calităţii sistemelor neuro-fuzzy este alegerea unui set de date de antrenare cât mai adecvat.

Page 41: Sisteme Neuro Fuzzy

41

5.4. Sinteza unui regulator neuro-fuzzy

Utilitatea RN stă în sinteza automată a sistemelor şi/sau optimizarea lor. În continuare se ilustrează sintetizarea unui regulator PD neuro-fuzzy. Se porneşte de la ideea obţi-nerii unui set de date de antrenare bogat, care să cuprindă o comportare mai nuanţată a regulatorului PD, respectiv un semnal de intrare mai complex, care pe lângă răspunsul indicial să mai cuprindă şi alte elemente.

Fig. 5.6. Sistem de reglare cu regulator PD liniar pentru generarea datelor de antrenare

0 2 4 6 8 10 12 14 16 18 200

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

t [s]

intrare u

iesire y

Fig. 5.7. Răspunsul sistemului de reglare cu regulator PD liniar

Fişierul de date de antrenare obţinut are dimensiunea 123 x 3. Reprezentarea grafică a datelor de antrenare apare în fig. 5.8.

Page 42: Sisteme Neuro Fuzzy

42

0 20 40 60 80 100 120 140-1

0

1

e

0 20 40 60 80 100 120 140-20

0

20

40

de

0 20 40 60 80 100 120 140-20

0

20

40

c

Fig. 5.8. Datele de antrenare

În urma încărcării datelor de antrenare şi a alegerii variantei în care ANFIS va genera un FIS cu două intrări având 7 respectiv 5 TL (o bază de 7 x 5 reguli), se obţine antre-narea convergentă din fig. 5.9.

Fig. 5.9 Antrenarea în cazul unei baze de reguli 7 x 5 (linear)

Page 43: Sisteme Neuro Fuzzy

43

Regulatorul PD Sugeno generat de RN este prezentat în figura următoare. Se remarcă variabila sa de ieşire alcătuită din 35 de valori diferite (singleton), fiecare dintre ele fiind optimizată în cursul antrenării. În acest caz a fost aleasă opţiunea linear pentru MF de ieşire.

Fig. 5.10. Regulatorul neuro-fuzzy cu baza de reguli 7 x 5

În cazul alegerii opţiunii constant convergenţa învăţării este chiar mai bună (vezi fig. 5.11), ceea ce nu creşte însă în mod necesar calitatea regulatorului.

Page 44: Sisteme Neuro Fuzzy

44

Fig. 5.11. Antrenarea sistemului neuro-fuzzy cu baza de reguli 7 x 5 (constant)

Răspunsul produs de către regulatorul astfel obţinut este prezentat în fig. 5.12.

0 2 4 6 8 10 12 14 16 18 200

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

t [s]

Fig. 5.12. Răspunsul sistemului neuro-fuzzy cu baza de reguli 7 x 5

Page 45: Sisteme Neuro Fuzzy

45

Marele avantaj al RN, capacitatea de învăţare automată, poate fi ilustrată prin varianta regulatorului cu doar 15 reguli, având baza de reguli cu dimensiunea 5 x 3. Răspunsul acestui regulator, prezentat în fig. 5.13, foarte asemănător cu răspunsurile regulatoare-lor mai complicate, justifică alegerea sa pentru aplicaţii, având în vedere simplitatea şi costul mai redus, la performanţe asemănătoare.

0 2 4 6 8 10 12 14 16 18 200

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

t [s]

Fig. 5.13. Răspunsul sistemului neuro-fuzzy cu baza de reguli 5 x 3

Fereastra de dialog prin care se alege structura FIS asociată, în acest caz cu 15 reguli, precum şi tipul mulţimilor fuzzy de la ieşire, în acest caz linear, este prezentată în figu-ra următoare. Această fereastră de dialog apare prin acţionarea butonului Generate FIS.

Fig. 5.14. Generarea FIS-ului asociat ANFIS

Page 46: Sisteme Neuro Fuzzy

46

Dezavantajul principal al RN este acela că ele maschează cunoştinţele referitoare la structura şi ajustarea lor. Din valorile numerice ale TL variabilei de ieşire, ca de altfel din valorile parametrilor oricărui neuron, nu se poate trage absolut nici o concluzie cu privire la o eventuală strategie care să le justifice. Aceste valori sunt practic aleatoare, iar în cazul în care datele de testare sunt mult diferite de cele de antrenare întreaga aplicaţie poate eşua.