Creeaza.com - informatii profesionale despre


Cunostinta va deschide lumea intelepciunii - Referate profesionale unice
Acasa » tehnologie » electronica electricitate
Construcția unui controler fuzzy bazat pe cunoștințe celulare

Construcția unui controler fuzzy bazat pe cunoștințe celulare


Construcția unui controler fuzzy bazat pe cunoștințe celulare

Controlerul fuzzy calculeaza acea valoare a comenzii u care asigura cea mai buna urmarire de catre iesirea procesului a referintei. El va desemna un raspuns cu trecut adecvat, ales din baza de cunostinte prin compararea trecutului raspunsurilor stocate in ea cu trecutul raspunsului actual. Alegand comenzile u din viitorul raspunsului cu trecut adecvat si aplicandu-le procesului, evolutia iesirii y a acestuia va fi similara cu cea a raspunsului din baza. Cu alte cuvinte, daca un viitor y al unui raspuns din baza de cunostinte este similar cu referinta r, atunci aceasta va fi urmarita de iesirea procesului aplicandu-i o comanda similara cu cea care determina acest viitor. Algoritmul fuzzy al controlerului va avea doi pasi: compararea trecutului si compararea viitorului.

Regulile de comparare ale trecutului si viitorului sunt:

IF raspunsul actual al procesului este similar cu un raspuns din baza de cunostinte, indicat prin celula de baza CBj,



THEN acesta este raspunsul cu trecut adecvat.

IF o parte din viitorul raspunsului cu trecut adecvat, indicat prin celula de baza CBj, seamana cu referinta incepand de la celula de baza (STd CBj),

THEN referinta va fi atinsa aplicand procesului valorile comenzii (STI CBj)_u, 1<i<d.

Daca alegem acelasi factor de liniarizare pentru ambele seturi de inferenta, regulile pot fi exprimate astfel:

IF u(k) g.CBj_u AND u(k-1) g(PT CBj)_u AND . AND u(k-hp+1) ) g(PThp-1 CBj)_u

AND y(k) g.CBj_y AND y(k-1) ) g(PT CBj)_y AND .AND y(k-hp+1) g(PThp-1 CBj)_y

THEN raspunsul CBj este cel cu trecut adecvat.

IF, in raspunsul cu trecut adecvat CBj:

r1+(k) g.(STdCBj)_y AND r2+(k) g.(STd+1CBj)_y AND.AND rhf+(k) g.(STd+hf-1CBj)_y

THEN g.(ST CBj)_u este valoarea comenzii ce va fi aplicata procesului.

Se compara hp perioade in trecut si hf in viitor. Comanda controlerului o vom nota cu u(k+1). Marimea d reprezinta distanta in timp intre piesa raspunsului care seamana cu trecutul si piesa care seamana cu viitorul. Suma intre d si hf se numeste orizont.

Partea conditionala a unei reguli de inferenta din primul set se exprima printr-o masura a similaritatii in evaluarea trecutului de forma: -sm(hp,u(k),y(k),CBj,g). Analog, pentru o regula din al doilea set, masura similaritatii in evaluarea viitorului va fi exprimata prin +sm(hf,r+(k),STd (CBj),g). Similaritatea combinata, in trecut si in viitor, este data de intersectia celor doua masuri.

Cum am aratat in cazul modelarii, iesirea controlerului fuzzy la un moment de esantionare este rezultatul evaluarii regulilor active din baza de cunostinte, stocate in tabela fuzzy de decizie. La sfarsitul evaluarii regulilor active printr-un algoritm de cautare, tabela va fi interpretata pentru a se obtine ca rezultat comanda.

Pentru ca la fiecare pas de esantionare este aleasa comanda cea mai buna din acel moment, controlerul se comporta mai bine decat oricare din raspunsurile stocate in baza de cunostinte !

Tabela fuzzy de decizie D(hp,hf ,d,e) are patru parametri: adancimea evaluarii in trecut (ordinul fuzzy) - hp; adancimea evaluarii in viitor - hf; distanta intre trecut si viitor (in numar de perioade) - d; extensia multimii fuzzy de comparare - e.

Semnificatia grafica a parametrilor de evaluare ai unui raspuns este prezentata in Figura III.52. Valorile lor se aleg in functie de cantitatea de informatii din baza de cunostinte. Adancimile de evaluare trebuie sa fie cat mai mari (dar sub limitele limitele np si nf), pe cand extensia trebuie sa tinda spre valoarea minima 1.

Tabela de decizie serveste urmatoarelor scopuri: calculul comenzii controlerului la un moment de esantionare si furnizarea unor indicii despre modul in care aceasta s-a obtinut, inregistrarea unor informatii necesare la urmatorul pas de calcul, extragerea unor date privind comportamentul controlerului fuzzy.

Figura III.52. Semnificatia grafica a parametrilor de evaluare a unui raspuns

Informatia inregistrata in tabela se noteaza cu D(hp,hf ,d,e)_x, unde x reprezinta tipul de informatie. Astfel, maximele masurilor de similaritate ale trecutului, respectiv viitorului regulilor sunt D(hp,hf ,d,e)_maxp si D(hp,hf ,d,e)_maxf, iar numarul celulei de baza al raspunsului cu cea mai buna intersectie intre aceste masuri este D(hp,hf ,d,e)_nr.

Pentru fiecare perioada de esantionare, se efectueaza calculul tabelei fuzzy de decizie, care incepe cu initializarea acesteia:

FOR hp =1,., np ; hf =1,., nf ; d= dmin,.,dmax si e= 1,.,emax, EXECUTE:

D(hp,hf ,d,e)_maxp = 0; D(hp,hf ,d,e)_maxf = 0; D(hp,hf ,d,e)_nr = 0.

END

Continutul tabelei se poate modifica in continuare dupa fiecare evaluare a unei reguli. Daca, dupa evaluarea mai multor reguli, notam tabela cu D(hp,hf,d,e) si masurile similaritatii in trecut si viitor ale urmatoarei reguli in trecut si viitor respectiv cu -sm(hp,u(k),y(k),CBj,g) si +sm(hf,r+(k),STd(CBj),g), continutul ei se poate schimba conform urmatorului algoritm de cautare:

FOR hp =1,., np ; hf =1,., nf ; d= dmin,.,dmax si e= 1,.,emax, EXECUTE:

IF

sm(hp,u(k),y(k),CBj,g) +sm (hf,r+(k),STd(CBj),g) > D(hp,hf,d,e)_maxp D(hp,hf ,d,e)_maxf THEN

D(hp,hf ,d,e)_maxp -sm(hp,u(k),y(k),CBj,g); D(hp,hf ,d,e)_maxf +sm(hf,r+(k),STd (CBj),g);

D(hp,hf ,d,e)_nr j.

ELSE

D(hp,hf ,d,e)_maxp, D(hp,hf ,d,e)_maxf si D(hp,hf ,d,e)_nr raman neschimbate.

Pentru evaluarea unei reguli j, calculul masurilor de similaritate pentru trecut si viitor se executa de np.nf.(dmax-dmin+1).emax ori. Similar cu cazul modelului fuzzy, pentru cresterea eficientei algoritmului, se pot introduce cateva tabele suplimentare, pentru stocheza rezultate intermediare: sh(e) va contine masuri ale similaritatii in trecut pentru diferite adancimi v de evaluare a acestuia (v I shp(hp,e) va contine masuri ale similaritatii in trecut pentru diferite adancimi de evaluare v si diferite extensii e, smf(hf,d,e) va contine masuri ale similaritatii in viitor pentru diferite adancimi de evaluare, diferite extensii si diferite distante in timp, smf(hf,d',e) va contine masuri ale similaritatii in viitor, cu distante in timp modificate, iar thr(hf,d') va indica de cate ori viitorul raspunsului atinge referinta sistemului.


Masurile similaritatii sunt exprimate prin valori fuzzy obtinute din trei multimi fuzzy de comparare convexe si normalizate: fc,u - pentru evaluarea trecutului intrarii u, fc,y - pentru evaluarea trecutului iesirii y si fc,ey - pentru evaluarea viitorului iesirii y. In experimente s-a utilizat o multime de comparare similara cu cea prezentata in Figura III.53, definita prin puncte egal departate conectate prin segmente de dreapta. Distanta dx dintre puncte se numeste unitate. Unitatile du dy si dey au valori diferite, pentru ca uzual viitorul se compara cu mai multa acuratete decat trecutul.

In timpul evaluarii pot fi gasite unele raspunsuri care au asemanatoare atat trecutul cat si viitorul si altele cu mari diferente intre cele doua componente. In acest din urma caz, se pot cauta similaritati in viitor dupa o anumita distanta in timp, cu conditia ca raspunsul sa nu se termine mai devreme (daca algoritmul de cautare selecteaza o celula de la sfarsitul unui raspuns, viitorul acestuia nu mai poate fi evaluat). Pentru stabilirea oportunitatii evaluarilor in viitor se foloseste o multime fuzzy a distantelor in timp fd:N , definita prin parametrii d1 si d2   astfel:

  (5.33)

Figura III.53. Multimea fuzzy de comparare a similaritatii raspunsurilor

Figura III.54. Alegerea largimii evaluarii viitorului unui raspuns

Zona valorilor lui y pentru care compararea viitorului raspunsurilor poate da un rezultat este data de largimea evaluarii ycmax = emax .wc,max, unde wc,max este largimea multimii fuzzy de comparare. Din Figura III.54 se poate vedea ca similaritatea viitorului este 0 in afara intervalului (y+ycmax, y-ycmax).

Pentru determinarea masurilor de similaritate, factorul de liniarizare g este calculat in general din trecutul raspunsului, cu formula:

g = (sign(CBj_u).u(k) + sign(CBj_y).y(k)) CBj_u CBj_y ) (5.34)

In cazurile (CBj_u =0, CBj_y =0); u(k) =0 sau y(k) =0, g trebuie calculat din viitor.

Algoritmul de evaluare a unei reguli de inferenta, reprezentata prin celula de baza CBj este urmatorul:

Pas 1:Testeaza daca evaluarea este posibila (daca CBj este la sfarsitul raspunsului, algoritmul este oprit).

Pas 2: Calculeaza largimea evaluarii.

Pas 3: Calculeaza factorului de liniarizare.

Rezultatul evaluarii pe o distanta de maximum dmax perioade este acea celula CBm din viitor pentru care se obtine fie similaritate de 100% pentru doua valori succesive ale lui y si lui r, fie similaritatea incepe sa scada pentru urmatoarea celula (ST CBm), fie g se micsoreaza pentru (ST CBm), in timp ce similaritatea ramane satisfacatoare (respectand conditia g. CBm_y-r <ycmax/2). Valoarea lui g se calculeaza cu formula:

g = (sign(CBm_y). r1+(k)+ sign((ST CBm)_y).r2+(k))/ ( CBm_y (ST CBm)_y

Daca CBm_y = 0 si (ST CBm)_y = 0, se alege g = 1.

Pas4: Evalueaza utilitatea raspunsului pe o adancime de maxim dmax perioade.

Caz a (viitorul nu atinge referinta): Pentru ca viitorul raspunsului nu se apropie de r la o distanta mai mica decat ycmax, raspunsul nu poate fi utilizat si evaluarea este oprita.

Caz b (viitorul se apropie de referinta): Raspunsul poate fi evaluat in continuare. Se trece la pasul 5b.

Caz c (viitorul trece peste referinta): Viitorul raspunsului depaseste cu mult referinta. Daca depasirea se produce la o distanta in timp mica, raspunsul nu va putea fi utilizat, pentru ca ar fi prea violent si -in consecinta- evaluarea este oprita. In caz contrar, se trece cu pasul 5c.

Pas 5b si 5c: Evalueaza trecutului prin calculul tabelei shp(hp,e).

Pas 6b: Utilizeaza raspunsul cu viitor asemanator referintei pentru calculul masurii similaritatii viitorului si stocheaza rezultatul in tabela.

Pas 6c: Utilizeaza raspunsul care depaseste cu mult referinta, numai daca iesirea controlerului nu va fi brutal modificata pe termen scurt.

Dupa evaluarea regulilor de inferenta ale controlerului fuzzy, tabela de decizie contine informatii despre regulile selectate. Interpretarea ei trebuie sa furnizeze regula care da cea mai buna asemanare cu trecutul si viitorul dorit, avand cea mai mica extensie si distanta in timp, cat si cea mai mare adancime in trecut si viitor. Aceste cerinte sunt conflictuale, deci rezultatul va fi un compromis. Un algoritm de interpretare, care da rezultate satisfacatoare in experimente, se bazeaza pe considerentul ca decizia se fundamenteaza pe o masura a similaritatii rezultanta (ca intersectie a masurilor de similaritate ale trecutului si viitorului) care nu trebuie sa fie mai mica decat o anumita valoare de apartenenta, numita limita de interpretare. In plus, adancimea evaluarii trebuie sa fie cat mai mare posibila Componentele solutiei cautate de algoritm sunt urmatoarele: regula rezultanta js(k), forta regulii M(k) (masura similaritatii regulii rezultante), trecutul dinamic hps(k) (adancimea in trecut rezultanta), viitorul dinamic hfs(k) (adancimea in viitor rezultanta), extensia rezultanta es(k) si distanta rezultanta ds(k).

Tabela de decizie este vazuta de catre algoritmul de interpretare ca o succesiune de subtabele tridimensionale (cu dimensiuni hp x hf x e), cate una pentru fiecare valoare a distantei in timp d. Intre doua raspunsuri au aceeasi masura de similaritate, va fi preferat acela cu cel mai mic d. Distanta pentru care aceasta masura este 0 se numeste gap. Vom nota limita de interpretare cu idb, valoarea minima a acesteia cu idbmin si valoarea unui coeficient de interpretare cu idc (ultimele doua sunt alese de catre proiectant). Limita idb este calculata de catre algoritmul de interpretare, in functie de masurile maxime ale similaritatii inregistrate in tabela de decizie. Cea mai mare valoare, idbmax, se va obtine din tabela tridimensionala care are cele mai mari adancimi de evaluare in trecut si in viitor cat si cea mai mare extensie. Cautarea maximului se face plecand de la dmin si oprindu-ne la primul gap dg sau la dmax:

idbmax = max (D(np,nf ,d,emax)_maxp D(np,nf ,d,emax)_maxf), cu dI

In aceste conditii, valoarea limitei de interpretare va fi idb = max ( idc .idmax,idmin ) iar cautarea in tabela pentru alegerea regulii adecvate se executa astfel:

FOR hp = np,.,1 ; hf = nf ,.,1; e= emax ,.,1,

SEARCH distata minima d0 (d0I , pentru care:

(D(np,nf ,d0,e)_maxp D(np,nf ,d0,e)_maxf)> idb.

Caz 1. (nici o distanta nu satisface inecuatia): Nu se alege nici o regula ( js(k)=0) si caracteristicile solutiei sunt: M(k) = 0, hps(k) = 0, hfs(k) = 0, es(k) = emax, ds(k) = dmax.

Caz 2. (a fost gasita o regula solutie): Regula este js(k) = D(hp,hf ,d0,e)_nr si reprezinta celula de baza CBnr. Caracteristicile solutiei sunt: hps(k) = hp , hfs(k) = hf, es(k) = e, ds(k) = d0., M(k) = smmax =(D(hp,hf ,d0,e)_maxp D(hp,hf ,d0,e)_maxf.

In cazul in care din interpretarea tabelei fuzzy de decizie rezulta o regula valida, valoarea comenzii ce va fi aplicata procesului este u(k+1) = g.(ST CBj)_u. In caz contrar, comanda se mentine neschimbata: u(k+1) = u(k) sau se poate utiliza regula selectata la pasul k-1, daca aceasta exista. Comanda poate fi corectata cu un factor de liniarizare, care sa evite variatiile mari ale valorii acesteia de la un pas la altul si cu un coeficient de multiplicare.

In procedura de calcul a iesirii controlerului fuzzy propus, se pot introduce anumite imbunatatiri, luand in considerare selectia a mai mult de o singura regula. Se propune elaborarea comenzii pe baza unei medii a regulilor, modificand tabela de decizie astfel incat sa inregistreze suma similaritatilor tuturor regulilor cat si suma produselor intre similaritatea unei reguli si rezultatul de mai inainte. Nu se poate spune insa de la inceput ca rezultatul va fi mai bun decat cel obtinut considerand numai cea mai buna regula. In calcul pot fi de asemenea utilizate cateva din cele mai bune reguli, atunci cand rezultatul regulii unice este o comanda slaba.

Pentru prevenirea situatiilor nedorite ce pot aparea in proces ca urmare a aplicarii unor comenzi prea brutale, raspunsurile pot fi evaluate mai inteligent prin detectia pragurilor. Un prag este o schimbare sensibila a valorii lui u, valorile anterioare sau cele ulterioare pragului fiind aproximativ aceleasi.

Daca adancimile de evaluare in trecut sau in viitor sunt mici sau daca extensia este mare, solutia controlerului se gaseste repede, insa calitatea comenzii poate fi slaba. De aceea se impune introducerea unei masuri a increderii in comanda, care sa dea o apreciere privind acuratetea functionarii controlerului fuzzy. Aceasta poate fi construita combinand valorile M(k), hp(k), np, hf(k), nf; es(k).

O expresie posibila pentru masura increderii este:

(5.36)

Cautarea raspunsurilor in baza de date

O mare parte din raspunsurile stocate in baza de cunostinte nu corespund criteriilor de comparare impuse de algoritmul controlerului fuzzy. Pentru reducerea timpului de calcul, se poate face o selectie preliminara a raspunsurilor pentru care evaluarea ar avea sanse de reusita. Multimea punctelor din planul (u,y) pentru care comparatia poate da rezultate pozitive se numeste regiune de cautare. Granitele regiunii sunt indicate prin inegalitati, deduse din regulile de inferenta ale controlerului fuzzy. Algoritmul de cautare va selecta numai acele raspunsuri care traverseaza aceasta regiune, eliminandu-le pe celelalte din procesul de comparare, ceea ce duce la o reducere considerabila a timpului de calcul.

Considerand forma generala a regulilor de inferenta prezentata mai devreme, in regiunea de cautare partea conditionala a acestora se reduce la aproximatia u(k) g.CBj_u AND y(k) g.CBj_y iar gasirea similaritatii celor doua raspunsuri se reduce in spatiul bidimensional la calculul intersectiei:

fu( du(k,j) ) fy( dy(k,j) ) (5.37)

cu du(k,j) = u(k) - g.CBj_u si dy(k,j) = y(k) - g.CBj_y

Compararea va reusi numai daca fu( u(k) - g.CBj_u) si fu( y(k) - g.CBj_y) . Aceste conditii vor fi satisfacute, conform celor prezentate in paragrafului 3, numai pentru latimi ale multimilor fuzzy de comparare mai mici decat valorile

wu = emax. wu,max

wy = emax. wy,max (5.38)

Combinand (5.37) cu (5.38), obtinem:

u(k) - g.CBj_u wu si y(k) - g.CBj_y wy  (5.39)

Pentru generalitate, am presupus ca multimile de comparare pentru u si y sunt diferite, deci wu si wy au valori distincte. Notand punctele din planul de cautare a controlerului fuzzy cu (udb,ydb) si utilizand un factor de liniarizare g dedus conform paragrafului 5.1.2, regiunea de cautare este determinata prin urmatorul set de inegalitati si formule:

u(k) - g.udb wu si y(k) - g. ydb wy

b = wy / wu

g = (sign( udb ).b.u(k) + sign( ydb ). y(k)) / ( b udb ydb (5.40)

1 / gb | g | gb; gb >

In zona obtinuta in maniera de mai sus, similaritatea variaza intre 0 si 1, iar in afara ei este 0. Se poate defini analog o regiune fuzzy de cautare, pentru care similaritatea variaza in intervalul g ] ( 0< g <

u(k) - g.CBj_u wu' si y(k) - g.CBj_y wy'  (5.41)

unde wu' = emax . fu-1(g si wy' = emax . fy-1(g daca exista inversa multimii de comparare. O astfel de regiune duce la obtinerea unui controler cu o comportare mai buna si reduce timpul de cautare. Similaritatea maxima (g ) se obtine pentru wu' = 0 si wy' = 0, in care caz inegalitatile (5.41) se reduc la u(k) = g.CBj_u si y(k) = g.CBj_y, iar regiunea devine o linie de cautare, descrisa prin ecuatia ydb = (y(k) / u(k)).udb, u(k)

Figura III.55 prezinta o regiune de cautare obtinuta pentru parametrii u(k)=2, y(k)=1, wu=1, wy=0.75 si gb=3. Figura III.56 prezinta regiuni de cautare pentru aceeasi parametri, dar pentru diferite valori ale lui g. S-a presupus ca multimile fuzzy de comparare pentru u si y sunt aceleasi.

Regiunea de cautare depinde de valorile actuale ale lui u si y, deci ea trebuie recalculata la fiecare pas de esantionare. Marimea regiunii depinde de valorile parametrilor wu si wy care - la randul lor - depind de largimea multimilor fuzzy de comparare, cat si de extensie. O multime fuzzy de comparare larga sau o extensie mare duc la extinderea ariei de cautare.

Figura III.55. O regiune de cautare cu parametrii u(k)=2, y(k)=1, wu=1, wy=0.75 si gb=3

Figura III.56. O regiune de cautare cu parametrii u(k)=2, y(k)=1, wu=1, wy=0.75, gb=3 si diferite valori ale lui g

Selectia raspunsurilor din regiunea de cautare se face plecand de la descrierea acesteia prin restrictiile (5.41), care determina valorile posibile pentru udb si - in functie de acestea - valorile pentru ydb. Cum raspunsurile din baza de cunostinte sunt impartite in clase din planul (u,y) iar regiunea de cautare este si ea o zona din acest plan, impartirea ramane valabila. Selectia raspunsurilor se poate face si prin alegerea clasei careia le apartin. Cautarea va porni de la raspunsurile pentru care la primul moment de esantionare similaritatea este 1 (g ), adica de pe linia de cautare si va continua pentru valori descrescatoare ale lui g, pana la atingerea granitelor regiunii (g =0). Formulele care genereaza regiunea de cautare corespunzatoare diferitelor cazuri, separat pentru u si y sunt destul de complexe si nu sunt prezentate in aceasta lucrare.





Politica de confidentialitate


creeaza logo.com Copyright © 2024 - Toate drepturile rezervate.
Toate documentele au caracter informativ cu scop educational.