+ All Categories
Home > Documents > Dezvoltare Sistemelor Fuzzy

Dezvoltare Sistemelor Fuzzy

Date post: 23-Oct-2015
Category:
Upload: misu77
View: 54 times
Download: 2 times
Share this document with a friend
Description:
sisteme fuzzy
Popular Tags:
34
1 Universitatea „Aurel Vlaicu” din Arad Facultatea de Inginerie Marius M. Bălaş Dezvoltarea sistemelor fuzzy Îndrumător de proiect
Transcript

1

Universitatea „Aurel Vlaicu” din Arad

Facultatea de Inginerie

Marius M. Bălaş

Dezvoltarea sistemelor fuzzy

Îndrumător de proiect

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

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.

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ă

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.

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)

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

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.

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.

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

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

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ă.

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

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.

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ă.

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.

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

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).

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.

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.

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.

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

23

3.2. Implementarea regulatorului Mamdani

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

Fig. 3.2. Fuzzyficarea

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).

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.

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.

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

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

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

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

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]

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)

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

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.


Recommended