Retele Neuronale Si Logica Fuzzy in Automatizari

72
Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv Prefaţă În proiectarea sistemelor de reglare automată, un algoritm competitiv ar trebui să valorifice orice fel de informaţie legată de procesul supus automatizării. Pentru o largă categorie de probleme, o bună parte din informaţie este deţinută de expertul uman. Această informaţie de obicei nu este o informaţie exactă, pentru descrierea acesteia dezvoltându-se teoria sistemelor cu procesare fuzzy a informaţiei. Apare astfel necesară încorporarea informaţie lingvistice de la expertul uman într-o manieră sistemică astfel încât asupra sistemului rezultat să poată fi analizat din punct de vedere al performanţelor, stabilităţii, etc. O altă parte a informaţiei este informaţia numerică obţinută de la senzori sau conform cu legile fizice care descriu procesul. Între aceste două tipuri de informaţie există mari diferenţe. astfel informaţie numerică este supusă legilor fizicii sau axiomelor matematicii, inexistente pentru informaţia lingvistică. Altfel spus legile care guvernează informaţia lingvistică sunt fundamental diferite de legile care guvernează informaţia numerică. Există două lumi: lumea fizică şi lumea umană, şi cum interacţiunea om-maşină este în continuă creştere tot mai multe sisteme inginereşti aparţin intersecţiei acestor două lumi. Scopul sistemelor adaptive fuzzy va fi tocmai modelarea acestei informaţii hibride lingvistico-numerice. În principiu un astfel de sistem este un sistem logic fuzzy înzestrat cu un algoritm de antrenare, algoritm care are rolul de a ajusta parametrii sistemului fuzzy pe baza perechilor de intrare-ieşire obţinute prin măsurători efectuate pe proces. Conceptual sistemele fuzzy adaptive combină informaţia lingvistică cu informaţia numerică astfel: deoarece sistemul fuzzy e constituit în principiu dintr-un set de reguli if-then,

Transcript of Retele Neuronale Si Logica Fuzzy in Automatizari

Page 1: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

Prefaţă

În proiectarea sistemelor de reglare automată, un algoritm competitiv ar trebui să valorifice orice fel de informaţie legată de procesul supus automatizării. Pentru o largă categorie de probleme, o bună parte din informaţie este deţinută de expertul uman. Această informaţie de obicei nu este o informaţie exactă, pentru descrierea acesteia dezvoltându-se teoria sistemelor cu procesare fuzzy a informaţiei. Apare astfel necesară încorporarea informaţie lingvistice de la expertul uman într-o manieră sistemică astfel încât asupra sistemului rezultat să poată fi analizat din punct de vedere al performanţelor, stabilităţii, etc.O altă parte a informaţiei este informaţia numerică obţinută de la senzori sau conform cu legile fizice care descriu procesul. Între aceste două tipuri de informaţie există mari diferenţe. astfel informaţie numerică este supusă legilor fizicii sau axiomelor matematicii, inexistente pentru informaţia lingvistică. Altfel spus legile care guvernează informaţia lingvistică sunt fundamental diferite de legile care guvernează informaţia numerică. Există două lumi: lumea fizică şi lumea umană, şi cum interacţiunea om-maşină este în continuă creştere tot mai multe sisteme inginereşti aparţin intersecţiei acestor două lumi. Scopul sistemelor adaptive fuzzy va fi tocmai modelarea acestei informaţii hibride lingvistico-numerice. În principiu un astfel de sistem este un sistem logic fuzzy înzestrat cu un algoritm de antrenare, algoritm care are rolul de a ajusta parametrii sistemului fuzzy pe baza perechilor de intrare-ieşire obţinute prin măsurători efectuate pe proces.Conceptual sistemele fuzzy adaptive combină informaţia lingvistică cu informaţia numerică astfel: deoarece sistemul fuzzy e constituit în principiu dintr-un set de reguli if-then, informaţia lingvistică va fi direct încorporată în baza de reguli; pe de altă parte informaţia numerică conţinută de perechile de intrare-ieşire este încorporată antrenând sistemul conform datelor măsurate de la proces, conform algoritmului de antrenare. Sistemul adaptiv fuzzy poate fi văzut ca un sistem logic fuzzy ale cărui set de reguli sunt generate automat prin antrenare conform setului de antrenare.

Lucrarea abordează sistemele adaptive fuzzy pornind de la conceptele care stau la baza construirii sistemelor cu procesare fuzzy a informaţiei, lucru care le justifică denumirea de sisteme adaptive fuzzy, însă la acelaşi formalism matematic se poate ajunge abordând problema din punctul de vedere al reţelelor neuronale sau al metodelor de interpolare.

Autorii.

Page 2: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

§.1 Modele fuzzy

Principial, în literatura de specialitate se consideră pentru un sistem cu procesarea fuzzy a informaţiei următoarea structură:

Figura 1.1Un sistem fuzzy logic fuzzy caracterizat prin: fuzzificarea intrărilor reale în mulţimi fuzzy singleton; printr-un algoritm de inferenţă de tip produs; şi defuzzificare prin metoda sumei ponderate a centrelor mulţimilor fuzzy ale consecinţelor conduce în final la următoarea formă sistemică pentru sistemul cu procesare fuzzy a informaţiei:

(1.1)

Referitor la notaţiile folosite se fac următoarele precizări:

, (1.2)

reprezintă setul de semnale de intrare reale. Dacă se consideră regulile IF-THEN de forma:IF is and . . . and THEN y is cu , (1.3)

unde M=numărul de reguli, va reprezenta funcţia de apartenenţă asociată mulţimii fuzzy

ce descrie o variabilă lingvistică, va fi centrul mulţimii fuzzy , adică punctul în care funcţia de apartenenţă atinge valoarea maximă 1. În baza ipotezelor făcute se poate demonstra pe baza formalismului matematic formula (1.1): fuzzificarea singleton conduce la următoarea mulţime fuzzy:

(1.4)

rezultatul activării regulii l îl constituie mulţimea fuzzy calculată conform următoarei reguli de compunere:

(1.5)

Page 3: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

care constituie de fapt exprimarea analitică a regulii de deducţie modus ponens. Apoi definim implicaţia ca produs:

(1.6)

definim produsul cartezian ca produs:

(1.7)

În final rezultă concluzia fuzzy considerând T-norma * ca şi produs pentru funcţiile de apartenenţă:

(1.8)

Ca rezultat al activării celor M reguli se obţin M mulţimi fuzzy caracterizate prin funcţiile de apartenenţă: . Mulţimea fuzzy B care exprimă concluzia finală va fi reuniunea celor M mulţimi fuzzy:

(1.9)

cu funcţia de apartenenţă calculată ca o sumă de T-conorme: (1.10)

pentru T-conormă alegându-se operaţia de însumare. Revenind la relaţia (1.8) cum şi conform cu relaţia (1.4) rezultă supremul astfel:

(1.11)

procedura de defuzzificare se consideră a fi media ponderată a centrelor mulţimilor fuzzy ale consecinţelor regulilor de deducţie:

(1.12)

unde ţinând cont de relaţia (1.11) obţinem relaţia de pornire (1.1).Observaţie: Dacă în loc de produs pentru definirea T-normei s-ar fi utilizat minimizarea ar fi rezultat următoarea relaţie care descrie global un sistem fuzzy:

(1.13)

Pentru dezvoltarea algoritmilor de antrenare trebuie specificată forma funcţiei de apartenenţă, care poate fi aleasă triunghiulară, trapezoidală, etc. În cazul studiat în cele ce urmează se va alege o funcţie de apartenenţă Gaussiană de forma:

(1.14)

sistemul (1.1) putând fi pus sub forma:

Page 4: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

(1.15)

Pentru forma sistemului fuzzy (1.15) informaţia lingvistică poate fi încorporată iniţial în setul de reguli IF-THEN, iar în algoritmul de ajustare (antrenare) a parametrilor sistemului , , se încorporează informaţia numerică.Următoarea teoremă justifică folosirea formei (1.15) pentru modelarea oricăror procese neliniare cu orice grad de precizie impus:Teorema universală de aproximare : Oricare ar fi funcţia reală continuă , mulţime compactă şi oricare ar fi , real, există sistemul fuzzy (1.13) astfel încât:

(1.16)

Demonstraţia se poate studia în [1]. Forma (1.15) a unui sistem fuzzy se poate interpreta astfel: Se consideră baza de funcţii radiale:

j=1..M (1.17)

Atunci sistemul (1.13) va fi echivalent cu următoarea formă:

(1.18)

unde . Având în vedere teorema de universală de aproximare se deduce că oricare funcţie neliniară poate fi descompusă în serie de funcţii radiale conform relaţiei (1.18), ordinul M al dezvoltării în cazul de faţă interpretându-se ca şi numărul de reguli din baza de reguli.În ceea ce priveşte parametrii ajustabili ai modelului fuzzy, acestea se împart în două tipuri şi anume: primul tip de model fuzzy pentru se foloseşte modelul (1.18), rezultând un algoritm liniar de

ajustare a parametrilor; al doilea tip de model fuzzy pentru care se foloseşte modelul (1.15) , parametrii care se

ajustează fiind , algoritmul de ajustare fiind neliniar.

§.2 Control fuzzy adaptiv indirect pentru sisteme neliniare

§.2.1 Control fuzzy adaptiv

Sistemele de control fuzzy se presupun că lucrează în situaţia existenţei incertitudinilor sau a variaţiilor mari de parametri sau structură ale procesului de condus. În aceste condiţii de incertitudine se cere sistemului de control menţinerea performanţelor impuse. Pe de altă parte se impune adaptarea parametrilor sistemului de control deoarece setul de reguli provenite de la expertul uman deşi conţin foarte multă informaţie calitativă aceasta nu este întotdeauna suficientă.

Page 5: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

Se impune astfel un mecanism de ajusta, eventual de a adăuga noi reguli în scopul realizării unui sistem de control cât mai eficient.

În literatura de specialitate sistemele de reglare adaptive se clasifică în două categorii: directe şi indirecte. Controlul adaptiv direct presupune reducerea erorii de urmărire prin ajustarea directă a parametrilor regulatorului. În sistemele de control adaptiv indirect există un estimator recursiv al parametrilor procesului iar legea de comandă se calculează pe baza parametrilor estimaţi "on-line". Astfel sistemele fuzzy de control adaptiv directe folosesc ca şi regulator un sistem fuzzy, astfel că informaţia lingvistică poate fi încorporată direct în controller. Pe de altă parte sistemele fuzzy de control adaptiv indirecte folosesc sistemele fuzzy ca să modeleze procesul. Din punct de vedere al modelului fuzzy folosit se remarcă că algoritmul de ajustare este liniar dacă se foloseşte primul tip de model fuzzy, respectiv devine neliniar în cazul folosirii celui de-al doilea tip de model fuzzy.

§.2.2 Sinteza sistemelor fuzzy de control adaptiv indirect pe baza teoriei stabilităţii a lui LyapunovSe consideră sistemul neliniar de ordinul n în forma normală:

(2.1)

sau forma echivalentă:

(2.2)

cu f, g funcţii continue, reprezintă intrarea, respectiv ieşirea din sistem, iar constituie vectorul de stare care poate fi măsurat. Pentru ca sistemul (2.2) să fie un sistem controlabil se impune ca într-o regiune de controlabilitate . Fără a pierde din generalitate se presupune că

pentru .Obiectivul sistemului de control pentru acest sistem îl va constitui urmărirea unui semnal de referinţă mărginit de către ieşirea procesului y astfel încât toate semnalele implicate să fie mărginite. Deci se cere determinarea semnalului de control şi a unei legi de adaptare a parametrilor astfel încât sistemul închis să fie global stabil în sensul că toate variabilele să fie uniform mărginite:

, , oricare ar fi

unde sunt parametrii stabiliţi de proiectant. Eroarea de urmărire se impune ca să fie cât mai mică posibil cu îndeplinirea obiectivelor anterioare.Să considerăm atunci vectorul şi astfel încât toate rădăcinile

polinomului să se găsească în semiplanul stâng al planului complex. Dacă funcţiile f, respectiv g sunt cunoscute atunci legea de control:

(2.3)

care se aplicat în (2.2) implică: (2.4)

Page 6: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

conform ipotezelor făcute. Astfel . Dar forma funcţiilor f, g nefiind cunoscută, conform

teoremei universale de aproximare le înlocuim cu modelele fuzzy , respectiv conform cu cele prezentate în primul capitol. Rezultă următoarea lege de control:

(2.5)

Prin aplicarea acestei legi de control în sistemul (2.2) şi o serie de artificii de calcul se obţine ecuaţia care descrie dinamica erorii de urmărire a traiectoriei impuse:

(2.6)

sau echivalentul cu variabile de fază:

(2.7)

unde:

, respectiv (2.8)

Se observă că polinomul caracteristic este stabilă. Există atunci o matrice unică P pozitiv definită, simetrică nxn care satisface ecuaţia Lyapunov:

(2.9) unde Q este o matrice arbitrar aleasă pozitiv definită. Să construim atunci funcţia Lyapunov care

descrie comportamentul energetic al sistemului: , a cărei derivată se calculează utilizând

ecuaţia erorii (2.7):

(2.9)

Conform teoriei Lyapunov pentru ca să fie mărginit, ( adică e să fie mărginit întrucât ym

este mărginit prin proiectare ) se impune ca ( energia sistemului erorii ) să fie mărginită, ceea ce implică când impusă prin proiectare. Din ecuaţia (2.8) se observă că este destul de dificil de a găsi comanda care facă termenul al doilea din membrul drept al relaţiei (2.8) să devină foarte apropiat de zero. Problema se rezolvă prin introducerea în componenţa semnalului de comandă a unei aşa numite comenzi supervizoare , astfel că semnalul de comandă final va fi:

(2.10)

Scopul acesteia va fi de a forţa când . Noul semnal de comandă introducându-l în sistemul (2.2), şi utilizând aceleaşi artificii de calcul ca şi în cazul obţinerii relaţiei (2.7) conduce la noua formă pentru ecuaţia care descrie dinamica erorii:

(2.11)

Recalculăm din nou prima variaţie a funcţiei Lyapunov conform cu noua ecuaţie (2.10):

(2.12)

Page 7: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

Pentru a proiecta astfel încât membrul drept al relaţiei (2.11) să fie negativ se presupune că se pot

determina funcţiile astfel încât: , respectiv pentru

, cu .Pe baza marginilor funcţiilor f, respectiv g alegem comanda supervizoare de forma:

(2.13)

unde , .

Introducând (2.13) în (2.12) şi considerând cazul , rezultă:

(2.14)

Legea de adaptare a parametrilor:

Se definesc:

(2.15)

unde , cu , constante de proiectare. Dacă se foloseşte primul tip de model

fuzzy , se ignoră ( prin acesta se impune ca implicate în definirea funcţiilor de apartenenţă să fie pozitive şi să nu existe puncte necuprinse în nici o partiţie fuzzy).

(2.16), semnificaţia constantelor fiind aceeaşi cu precizarea că

restricţia s-a introdus pentru a impune pozitiv conform ipotezelor preliminare. Se defineşte eroarea minimă de aproximare:

(2.17)

Rescriem atunci ecuaţia erorii (2.10):

(2.18)

Dacă alegem pentru modelele fuzzy prima formă pentru care se realizează ajustarea numai a centrelor consecinţelor a regulilor şi tratând modelul ca pe o serie de funcţii radiale relaţia (2.18) se rescrie:

(2.19)

unde . Considerăm funcţia Lyapunov:

(2.20)

unde , respectiv sunt constante pozitive. Derivata acesteia de-a lungul traiectoriei (2.19) este:

(2.21)

utilizându-se ecuaţia Lyapunov (2.9) şi . Conform relaţiei (2.12) prin care s-a introdus comanda

supervizoare şi cum pe domeniul de controlabilitate rezultă . Alegând apoi următoarea lege de adaptare a parametrilor:

(2.22)

Page 8: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

atunci (2.21) devine:

(2.23)

Se observă că relaţia este dependentă de eroarea de aproximare minimă w. Revenind la alegerea modelelor fuzzy pentru f, respectiv g, dacă alegem tipul al doilea de model fuzzy care permite şi ajustarea centrelor premizelor regulilor şi a dispersiei a funcţiilor de apartenenţă gaussiene se parcurg aceleaşi etape cu remarca că iniţial se face aproximarea modelelor printr-o descompunere în serie Taylor în jurul valorilor parametrilor care asigură eroarea de aproximare minimă:

(2.24)

Făcând substituţia în relaţia (2.18) rezultă ecuaţia care modelează dinamica erorii de urmărire:

(2.25)

unde:

(2.26)

Apare următoarea problemă şi anume menţinerea parametrilor în interiorul domeniului . Pentru aceasta se utilizează algoritmul vectorului de gradient proiectat, domeniile fiind văzute ca nişte restricţii. Astfel dacă parametrii care se ajustează sunt în interiorul domeniului se utilizează legea de ajustare (2.22). Dacă s-a ajuns pe graniţa domeniului şi tendinţa parametrilor este de a părăsi domeniul, ajustăm parametrii pe direcţia proiecţiei gradientului conform relaţiei (2.22) pe limita domeniului în punctul unde ne aflăm:

Schematic algoritmul poate fi reprezentat:

Page 9: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

Valorile iniţiale ale parametrilor se stabilesc pe baza informaţiilor lingvistice existente. Dacă nu există informaţii lingvistice se stabilesc arbitrar cu respectarea restricţiilor impuse.

Page 10: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

2.3 Etapele în proiectarea unui sistem fuzzy adaptiv indirect folosind primul tip de model fuzzy

Calcule off-line alege astfel încât toate rădăcinile polinomului să fie în

semiplanul stâng al planului complex. se alege o matrice Q nxn pozitiv definită şi se rezolvă ecuaţia Lyapunov unde

, respectiv

se dau parametrii bazându-ne pe cunoştinţe practice asupra procesului Construirea unui controller iniţial

se definesc mulţimi fuzzy ale premizelor regulilor de deducţie ale căror funcţii de

apartenenţă acoperă uniform proiecţia domeniului pentru variabilele de intrare pe

coordonata a i-a, unde şi , n fiind numărul de intrări.

se construieşte baza de reguli pentru modelele fuzzy , fiecare având

reguli ale căror premize cuprinde toate combinaţiile posibile ale mulţimilor

fuzzy pentru . Regulile sunt de forma:

Mulţimile fuzzy şi regulile fuzzy înglobează cunoştinţele lingvistice despre proces dacă ele există, în caz contrar se iau arbitrar lăsând pe seama algoritmului de antrenare ajustarea acestora.

se construiesc funcţiile radiale de bază: şi se ordonează în

ordinea naturală pentru în vectorul , - dimensional. Se

construiesc vectorii parametrilor ajustabili , respectiv ca şi argumentele funcţiilor

, respectiv în care aceasta ating valoarea maximă adică 1. rezultă atunci

modelele fuzzy ca şi serii de funcţii radiale :

Adaptarea on-line

se aplică procesului comanda unde şi

Page 11: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

unde: , .

vectorul parametrilor se ajustează conform următorului algoritm

unde operatorul de

proiecţie se defineşte:

vectorul parametrilor se ajustează conform următorului algoritm: oricând un element se utilizează altfel se utilizează:

unde

operatorul de proiecţie se defineşte analog:

Proprietăţile controllerului astfel construit sunt cuprinse în următoarea teoremă:Teoremă: Sunt garantate următoarele proprietăţi pentru algoritmul de control adaptiv indirect cu primul tip de model fuzzy:1. şi toate elementele vectorului sunt mai mari decât ,

2.

3. , unde

este cea mai mică valoare proprie a matricii P şi

4. , , cu a, b constante şi w eroarea minimă de aproximare definită de

(2.17).

5. Dacă atunci

Demonstraţia teoremei se găseşte în [1].

2.4 Etapele în proiectarea unui sistem fuzzy adaptiv indirect folosind al doilea tip de model fuzzy

Calcule off-line analoage Construirea unui controller iniţial

Page 12: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

Se consideră modele fuzzy de tipul al doilea de forma: unde

constituie vectorul parametrilor ajustabili. Deci se va considera pentru fiecare

model fuzzy o bază de M reguli, în care sunt încorporate dacă există cunoştinţe iniţiale despre proces. Vectorul iniţial al parametrilor ajustabili se alege conform cunoştinţelor lingvistice disponibile, restul de parametrii despre care nu cunoaştem nimic se aleg arbitrar. Adaptarea on-line a parametrilor

se calculează conform următorului algoritm:

unde , relaţiile fiind deduse prin

efectuarea derivării corespunzătoare asupra modelului. Pentru g derivata se calculează identic, schimbând f cu g în relaţiile de mai sus.

se aplică procesului comanda unde şi

(2.12)

unde: , .

vectorul parametrilor se ajustează conform următorului algoritm:

oricând un element se utilizează

Page 13: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

altfel se utilizează:

vectorul parametrilor se ajustează conform următorului algoritm:

oricând un element se utilizează

oricând un element se utilizează altfel se utilizează:

Proprietăţile algoritmului sunt identice ca şi în cazul folosirii primului tip de model cu modificarea lui w cu v în relaţia mărginirii erorii. Algoritmul va asigura o eroare de aproximare minimă mai bună deoarece spaţiul unde se caută parametrii este mai mare. Sensibilitatea performanţelor la alegerea valorilor iniţiale ale parametrilor va fi mai mare.Observaţie: De obicei forma generală a sistemelor neliniare este: . Pentru a putea aplica algoritmul expus este necesară găsirea unei relaţii directe între ieşirea sistemului y şi intrarea u. Aceasta se realizează printr-un algoritm de liniarizare care constă în diferenţierea repetată a ieşirii y până când apare intrarea u, apoi se proiectează legea de comandă u astfel încât să neliniaritatea să dispară, rezultând în final o lege de comandă liniară. Presupunând că după r diferenţieri repetate apare intrarea u, unde n dimensiunea vectorului variabilelor de stare se va numi gradul relativ al sistemului: . Se poate arăta că pentru orice sistem controlabil de ordinul n, după cel mult n diferenţieri succesive va apărea intrarea u. În continuare se aplică algoritmul prezentat anterior, cu excepţia că nu va mai exista o comandă supervizoare, necunoscând funcţiile f, g fiind total necunoscute.

Capitolul 3: Control fuzzy adaptiv direct

3.1 Sinteza sistemelor fuzzy de control fuzzy adaptiv direct pe baza teoriei stabilităţii a lui Lyapunov

Se consideră că procesul poate este descris de următorul sistem de ecuaţii diferenţiale:

(3.1)

Page 14: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

unde f constituie funcţia necunoscută, b este o constantă pozitivă , este semnalul de comandă şi y este ieşirea din proces. Presupunem că vectorul variabilelor de stare este accesibil

măsurătorilor. Obiectivele de control vor fi aceleaşi, cu deosebirea că semnalul de comandă se consideră a fi un sistem fuzzy.Presupunem că semnalul de control are forma: (3.2)

Prin înlocuire în (3.1) rezultă: (3.3)

Dacă f şi b sunt cunoscute atunci legea de comandă: (3.4) va

forţa eroarea de urmărire e să conveargă spre 0, unde şi astfel ales

astfel încât rădăcinile polinomului să de găsească în semiplanul stâng al planului complex. În ecuaţia (3.3) adăugăm şi scădem , rezultând după câteva artificii de calcul ecuaţia erorii care guvernează comportamentul sistemului închis:

(3.5) sau

echivalentul acesteia cu variabile de fază: (3.6) unde

(3.7)

Asociem acestei ecuaţii funcţia Lyapunov unde P este o matrice simetrică pozitiv definită,

soluţie s ecuaţie Lyapunov: (3.8) cu

Q>0. Calculăm derivata funcţiei Lyapunov:

(3.9).

Pentru a găsi o comandă supervizoare astfel încât se consideră că se poate determina o funcţie şi o constantă astfel încât: şi . Comanda supervizoare se va construi

conform cu următoarea relaţie:

(3.10)

unde semnificaţia constantelor este aceaşi. În cazul în care ( ) rezultă prin înlocuire în (3.9):

(3.11)

Cum P>0 mărginirea lui implică mărginirea lui care va implica mărginirea lui .În continuare se va considera pentru sistemul fuzzy de primul sau al doilea tip şi se va prezenta legea de ajustare a vectorului parametrilor sistemului . Se consideră vectorul parametrilor optimali ai

sistemului: (3.12) şi

eroarea minimă de aproximare: (3.13). Ecuaţia (3.6) care descrie comportamentul erori de reglare se rescrie:

(3.14)

Alegând şi notând , ecuaţia (3.14) devine: (3.15)

Page 15: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

Redefinim atunci funcţia Lyapunov : (3.14) a cărei derivată va fi:

(3.16)

Fie ultima coloană a matricii P astfel că: (3.17)

Înlocuind (3.17) în (3.16) rezultă: (3.18)

Cum , alegând legea de ajustare: (3.19) atunci relaţia (3.18) devine:

(3.20)

S-a utilizat faptul: . De asemenea pentru a garanta se utilizează algoritmul vectorului gradient proiectat.Dacă alegem tipul al doilea de model fuzzy, este necesară descompunerea în serie Taylor în jurul lui :

(3.21)

caz pentru care ecuaţia erorii de urmărire devine:

(3.22)

unde , algoritmul de calcul fiind în continuare analog. Schema generală va fi analoagă cu cea prezentată în capitolul 2.

3.2 Etapele în proiectarea unui sistem fuzzy adaptiv direct folosind primul tip de model fuzzy

Calcule off-line alege astfel încât toate rădăcinile polinomului să fie în

semiplanul stâng al planului complex. se alege o matrice Q nxn pozitiv definită şi se rezolvă ecuaţia Lyapunov unde

, respectiv

se dau parametrii bazându-ne pe cunoştinţe practice asupra procesului Construirea unui controller iniţial

se definesc mulţimi fuzzy ale premizelor regulilor de deducţie ale căror funcţii de

apartenenţă acoperă uniform proiecţia domeniului pentru variabilele de intrare pe

coordonata a i-a, unde şi , n fiind numărul de intrări.

se construieşte baza de reguli pentru modelele fuzzy , având reguli ale

căror premize cuprinde toate combinaţiile posibile ale mulţimilor fuzzy pentru .

Regulile sunt de forma:

Mulţimile fuzzy şi regulile fuzzy înglobează cunoştinţele lingvistice despre proces dacă ele

Page 16: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

există, în caz contrar se iau arbitrar lăsând pe seama algoritmului de antrenare ajustarea acestora.

se construiesc funcţiile radiale de bază: şi se ordonează în

ordinea naturală pentru în vectorul , - dimensional. Se

construiesc vectorii parametrilor ajustabili ca şi argumentele funcţiilor în care

aceasta ating valoarea maximă adică 1. Rezultă atunci modelul fuzzy al controllerului ca şi serii de funcţii radiale :

Adaptarea on-line

se aplică procesului comanda unde

unde: , .

vectorul parametrilor se ajustează conform următorului algoritm

unde operatorul de proiecţie

se defineşte:

Proprietăţile controllerului astfel construit sunt cuprinse în următoarea teoremă:Teoremă: Sunt garantate următoarele proprietăţi pentru algoritmul de control adaptiv indirect cu primul tip de model fuzzy:1.

2.

3. , , unde este cea mai mică valoare proprie a matricii P

şi

4. , , cu a, b constante şi w eroarea minimă de aproximare.

5. Dacă atunci

Demonstraţia teoremei se găseşte în [1].

Page 17: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

3.3 Etapele în proiectarea unui sistem de control fuzzy adaptiv direct folosind al doilea tip de model fuzzy

Calcule off-line analoage, fiind necesară şi introducerea limitei inferrioare pentru dispersia funcţiilor de apartenenţă

Construirea unui controller iniţial

Se consideră modele fuzzy de tipul al doilea de forma:

unde constituie vectorul parametrilor ajustabili. Deci se va considera pentru

modelul fuzzy al controllerului o bază de M reguli, în care sunt încorporate dacă există cunoştinţe iniţiale despre proces. Vectorul iniţial al parametrilor ajustabili se alege conform cunoştinţelor lingvistice disponibile, restul de parametrii despre care nu cunoaştem nimic se aleg arbitrar.

Adaptarea on-line a parametrilor

se calculează conform următorului algoritm:

unde , relaţiile fiind deduse prin

efectuarea derivării corespunzătoare asupra modelului.

se aplică procesului comanda unde

unde: , .

vectorul parametrilor se ajustează conform următorului algoritm:

oricând un element se utilizează

altfel se utilizează:

unde operatorul de proiecţie se defineşte:

Algoritmul garantează aceleaşi proprietăţi, conform teoremei enunţate în (3.2).

Page 18: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

Capitolul 4: Simulări algoritmi

4.1 Aplicaţie: Sistem de urmărire traiectorie pentru pendulul invers

Se consideră următorul sistem, denumit pendulul invers pentru care se va construi un controller fuzzy pe baza algoritmilor enunţaţi anterior cu scopul de a urmări o traiectorie impusă.

Ca şi referinţă se alege , respectiv treapta . Algoritmul necesită nişte date preliminare

privind restricţiile: :

Page 19: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

Unghiului făcut de ax cu pol I se alege domeniul: , rezultând imediat:

Forţei u care acţionează asupra căruciorului îi impunem: . Cum dacă putem

face atunci şi . De asemenea o să avem . Parametrii astfel încât

restricţiile asupra semnalului de control u, respectiv stării să fie îndeplinite, în concordanţă totodată cu teorema

care stabileşte performanţele sistemului de control, ,

Cum şi impunem , rezultă , adică

Aleg ceea ce conduce la un polinom cu rădăcini în semiplanul stâng, matricea ,

pozitiv definită şi simetrică. Rezolvând ecuaţia Lyapunov rezultă matricea Lyapunov: pozitiv definită

a cărei valoare minimă este , rezultând . Coeficienţii se determină

ţinând cont de mărginirea semnalului de comandă pe care o impune algoritmul, rezultând: . Pentru ce de-al doilea tip de controller fuzzy se alege .

Programele de simulare au fost realizate sub mediul MATLAB. Vectorul parametrilor ce se ajustează iniţializat cu respectarea restricţiilor care i se impun.

Controller fuzzy adaptiv indirect cu primul tip de model fuzzy

Se folosesc 5 variabile lingvistice pentru acoperirea domeniului .

Referinţă treaptă unitate , Ts=0.01,

, rezultând în final o eroare de urmărire e=3.0746e-010 , de modelare em= 0.1047 şi

valoarea funcţiei Lyapunov V=4.7265e-019. Comanda supervizoare va fi zero, valoarea funcţiei Lyapunov neatingând pragul de activate a acesteia.

Page 20: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

Page 21: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

Referinţă sinusoidală , Ts=0.01

x10=-pi/60; e= 9.2416e-005,V= 4.6366e-008

Page 22: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

Perturbez referinţa cu un semnal stochastic având amplitudinea jumătate din amplitudinea semnalului de

referinţă:

Se observă că sistemul filtrează perturbaţia, ieşirea semnalul de ieşire fiind aproape sinusoidal.

Page 23: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

x10=pi/60; e=1.7942e-004 , V= 4.1228e-008

Page 24: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

semnal de referinţă triunghiular e= -0.0012, V= 1.9207e-007

Page 25: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

Folosesc 3 variabile lingvistice pentru acoperirea domeniului, reconsiderând semnalul sinusoidal

Page 26: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

Consider cazul unei referinţe sinusoidale dar de amplitudine pi/4 în afara domeniului considerat pentru x, considerându-se tot 3 variabile lingvistice , paşii de căutare fiind gam1=5, gam2=0.1.

Page 27: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

Se observă că indiferent de starea finală eroarea de modelare ca şi semnal din sistemul închis e stabilă în sens Lyapunov. Indiferent de starea iniţială a procesului ce se modelează oscilaţiile sunt mărginite de aceeaşi margine. Din modul cum oscilează încă parametrii supuşi ajustării se deduce că parametrii nu sunt încă cei mai buni.

Page 28: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

Presupunem că despre proces nu avem disponibile informaţii cum ar fi mărginirea funcţiilor,etc, ci numai cunoaştem că gradul relativ al sistemului este 2. Necunoscând domeniul de variaţie al parametrilor sistemului, ajustez parametrii acestuia direct după gradient, nemaiintroducând limitarea acestora pe un domeniu.e= 7.5342e-005; V=3.2025e-006

Controller fuzzy adaptiv indirect cu al doilea tip de model fuzzy

Referinţă treaptă unitate , Ts=0.01

, rezultând în final o eroare de urmărire e= 2.6499e-010, de modelare

em= -2.0343e-006 şi valoarea funcţiei Lyapunov V= 2.2607e-014. Comanda supervizoare va fi zero, valoarea funcţiei Lyapunov neatingând pragul de activate a acesteia.

Page 29: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

Referinţă sinusoidală , Ts=0.01

x10=-pi/60; e= 1.4566e-004,V= 1.2482e-007

Page 30: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

Algoritmul de ajustare a parametrilor se realizează cu pas constant. Pasul de căutare poate fi interpretat ca o rată de învăţare, având în vedere structura similară cu a unei reţele neuronale a modelelor fuzzy. Algoritmul acţionează asupra minimizării erorii de urmărire şi nu a erorii de modelare. De fapt se învaţă semnalul de referinţă.

Controller fuzzy adaptiv direct cu primul tip de model fuzzy pentru f cunosc marginea superioară, şi consider bl=1, rezultând la o treaptă de pi/30:e= -3.5162e-004; V= 2.6888e-011;

Page 31: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

Page 32: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

4.2 Aplicaţie pentru un sistem liniar

Se consideră sistemul dat prin funcţia de transfer care conduce la ecuaţiile de stare

respectiv . Răspunsul sistemului la o treaptă unitate va fi:

Se va simula un sistemul închis în cazul unui controller fuzzy adaptiv direct construit cu primul tip de model fuzzy, respectiv cu cel de al doilea tip de model fuzzy, neconsiderându-se un domeniu în care să se găsească parametrii ajustabili. Controller fuzzy adaptiv direct cu primul tip de model fuzzyPentru controllerul fuzzy se consideră domeniul pentru variabilele de intrare [-4 4], pe care se consideră 5 variabile lingvistice cu centrele uniform distribuite pe domeniul de intrare şi dispersia funcţiilor de apartenenţă 1 parametrii iniţiali ( centrele concluziilor legilor de apartenenţă se aleg aleatoriu în intervalul [-5 5].

Se consideră aceeaşi parametrii pentru definirea dinamicii erorii de urmărire ca în exemplul anterior. referinţă treaptă de amplitudine 3 , perioada de eşantionare Ts=0.1, pas de căutare gama=1

Page 33: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

referinţă treaptă de amplitudine 10 care va plasa variabilele de intrare în afara domeniului de definiţie, perioada de eşantionare Ts=0.1, pas de căutare gama=1

Page 34: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

reconsider o eşantionare cu perioada de 0.5 .Păstrând acelaşi pas de căutare sau rată de învăţare sistemul devine instabil, deoarece reţeaua nu reuşeşte să se antreneze. Pentru aceasta reconsider un nou pas de căutare mai mic gama=0.2 având în vedere că eroarea de urmărire după care se realizează ajustarea evoluează mai repede. Va fi afectată dinamica sistemului având în vedere că procesul de învăţare necesită cam acelaşi timp.

Page 35: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

controller fuzzy adaptiv direct cu al doilea tip de model fuzzyÎn acest caz singurele procesul este total necunoscut controllerului. Parametrii care trebuie precizaţi vor fi perioada de eşantionare Ts, pasul de căutare gama, numărul de reguli implicate în construirea modelului controllerului M şi limita inferioară S pentru dispersia funcţiilor de apartenenţă. referinţă treaptă unitate de amplitudine 3, Ts=0.1; gama=1;M=5;S=1;

Page 36: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

Ca urmare a pasului de căutare rezultă în primul pas de ajustare valori negative pentru dispersiile funcţiilor radiale, valori care ca urmare a algoritmului de limitare se vor păstra neschimbate. reconsider cazul unui semnal de referinţă triunghiular semnal prin care impunem sistemului să înveţe 2

tipuri de semnale de referinţă.

Page 37: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

Reconsider sistemul care este un sistem de fază neminimă şi nu are o

componentă integratoare în el. În aceleaşi condiţii iniţiale ca şi primul sistem simulez controlul adaptiv fuzzy adaptiv direct. Sistemul nu va avea eroare staţionară.

Page 38: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

Reconsider procesul cu un coeficient de amplificare mai mare: . În aceleaşi

condiţii sistemul devine instabil fiind necesară schimbarea domeniilor de definiţie pentru variabilele de intrare, lucru care nu e necesar în cazul folosirii controllerului cu cel de-al doilea tip de model fuzzy.

Page 39: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

Anexe de Programe de simularefunction csi=radial(x,x0,sigmax); % construieşte setul de funcţii radiale% function csi=radial(x,x0,sigmax)% calculeaza setul de functii radiale de baza% x=vector intrari nx1% x0=vector centre de clasificare nxM unde M=numar de legi% sigmax=varianta functii de apartenenta gaussiene nxM asociata x0% csi=Mx1 setul de functii radiale de baza% se considera ca valorile de intrare sunt identic acoperite cu functii de apartenenta

[n,M]=size(x0); [mi,i1]=min(x0'); [ma,i2]=max(x0');for l=1:M csi(l,1)=1; for i=1:n, if ( (x(i)<mi(i))&(l==i1(i)) )|( (x(i)>ma(i))&(l==i2(i)) ) vv=1; else vv=gaussmf(x(i),[sigmax(i,l) x0(i,l)]); end; csi(l,1)=csi(l,1)*vv; end;end;aa=sum(csi);if aa==0 aa=1;end;csi=csi/aa;

function y=sim_f1(x,x0,sigma,teta); % simulează modelul fuzzy% function y=sim_f1(x,x0,sigma,teta)% simuleaza primul tip de model fuzzy % x=vector intrari nx1% x0=vector centre de multimi fuzzy premize nxM unde M=numar de legi% sigma=varianta functii de apartenenta gaussiene nxM asociata x0% teta=centre multimi fuzzy consecinte Mx1% y=iesirea modelului

csi=radial(x,x0,sigma);

y=teta'*csi;

inada_u.m generează comanda adaptivă indirectă

function [uc,us,Ve]=inada_u(x,x0f,sigmaf,tetaf,x0g,sigmag,tetag,ymn,K,e,P,bc,V,fu,gu,gl); Ve=e'*P*e/2;

uc=(-sim_f1(x,x0f,sigmaf,tetaf)+ymn+K'*e)/sim_f1(x,x0g,sigmag,tetag); if Ve<=V us=0; else us=sign(e'*P*bc)*(abs(sim_f1(x,x0f,sigmaf,tetaf))+feval(fu,x)+abs(sim_f1(x,x0g,sigmag,tetag)*uc)+abs(feval(gu,x)*uc))/feval(gl,x); end;

ada_u.m generează comanda adaptivă directă

function [uc,us,Ve]=inada_u(x,x0f,sigmaf,tetaf,bl,ymn,K,e,P,bc,V,fu); Ve=e'*P*e/2;

uc=sim_f1(x,x0f,sigmaf,tetaf);

Page 40: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

if Ve<=V us=0; else us=sign(e'*P*bc)*(abs(uc)+(feval(fu,x)+abs(ymn)+abs(K'*e))/bl); end;

ada_teta.m ajustează parametrii

function tetaf=ada_teta(tetaf,co,cof1,cof2,Mf,gam1,csif,semn);

if ( modd(cof1)<Mf )|( (modd(cof1)>=Mf)&(cof2>=0) ) tetaf=tetaf+sign(semn)*gam1*co*csif; elseif (modd(cof1)>=Mf)&(cof2<0) tetaf=tetaf+sign(semn)*gam1*co*csif-sign(semn)*gam1*tetaf*cof2/modd(tetaf)^2; end;

ii=find(abs(tetaf)>Mf);if length(ii)>0

for rr=1:length(ii) tetaf(ii(rr))=sign(tetaf(ii(rr)))*Mf; end; end; ada_lim.m limitează inferior parametrii

function tetag=ada_lim(tetag_ant,tetag,gam2,E,co,csiguc,semn); ind=find(tetag<E); if ind>0 for ii=1:length(ind) cc=co*csiguc(ind(ii)); if cc<0 tetag(ind(ii))=tetag_ant(ind(ii))+sign(semn)*gam2*cc; else tetag(ind(ii))=tetag_ant(ind(ii)); end;

end;

end;

df_deta.m calculează derivata funcţiei ce descrie modelul fuzzy la parametrii care se ajustează

function [dfy,dfx,dfs]=df_dteta(x,x0,sigma,yl);

%function [dfy,dfx,dfs]=df_dteta(x,x0,sigma,yl)%calculeaza derivata functionalei ce defineste modelul fuzzy functie %de parametrii x0,sigma,teta in punctul x%x=nx1 intrararile modelului fuzzy%x0=nxM centrele premizelor celor M reguli%sigma=nxM varianta%yl=Mx1 centrele comsecintei celor M reguli%dfy=Mx1 derivata dupa yl%dfx=nxM derivata dupa x%dfs=nxM derivata dupa sigma

M=length(yl);n=length(x);dfy=radial(x,x0,sigma);ff=sim_f1(x,x0,sigma,yl);

Page 41: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

for l=1:M for i=1:n

dfx(i,l)=2*dfy(l)*(ff-yl(l))*(x(i)-x0(i,l))/sigma(i,l)^2; dfs(i,l)=dfx(i,l)*(x(i)-x0(i,l))/sigma(i,l)^2; end;end;

modd.m calculează modulul vectorului

function mm=modd(x)n=length(x);

%mm=modd(x)%calculeaza modulul vectorului x

mm=sqrt(sum(x.^2));%mm=(sum(abs(x).^n)).^(1/n);

sis_ref.m modelul de referinţă

function ym=sis_ref(k,Ts,y);

%ym=sis_ref(k,Ts,y)%sistemul de referinta dupa care se antreneaza sistemul fuzzy adaptiv%ym- (n+1)x1-contine y,dy,...,d^(n)y%k*Ts=momentul de timp,y-vector esantion anterior

AA=pi/30;

%referinta triunghiulara%ym=[y(1)+Ts*tan(2*AA/pi)*sign(cos(k*Ts));sign(cos(k*Ts))*tan(2*AA/pi);0];

%referinta sinusoidalaym=[sin((k+1)*Ts);cos((k+1)*Ts);-sin((k+1)*Ts)]*AA;%+(rand(3,1)-0.5)*AA;

%referinta treapta%ym=[AA;0;0];

pendul.m conţine modelul pendulului invers

function yprim=pendul(t,y) %functie ce descrie comportamentul pendulului invers

g=9.8;mc=1;m=0.1;l=0.5;yprim(1)=y(2);yprim(2)=(g*sin(y(1))-(m*l*y(2)^2*cos(y(1))*sin(y(1)))/(mc+m)+cos(y(1))/(mc+m)*y(3))/(l*(4/3-m*cos(y(1))^2/(mc+m)));yprim(3)=0;

Funcţii ce implementează restricţiile impuse asupra funcţionalelor ce intră în componenţa modelului

pend_fu.m

Page 42: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

function y=pend_fu(x);

y=15.78+0.0366*x(2)^2;

pend_gl.m

function y=pend_gl(x);

y=1.12;

pend_gu.m

function y=pend_gu(x);

y=1.46;

inada_f1.m simulator pentru control fuzzy adaptiv indirect cu primul tip de model fuzzy

%genereaza comanda u si adapteaza parametrii tetaf,tetag %x=vector stare (faze) proces nx1 unde x(1) reprezinta iesirea din proces, x(2) derivata de %ordin 2, ....%ym=referinta nx1 ym(1) iesirea dorita, ym(2) derivata iesirii dorite,...%x0f= nxMMf centre multimi fuzzy modelul functiei f(x) und MMf este numarula regulilor fuzzy%sigmf=nxmf varianta functiilor de apartenenta multimilor fuzzy considerate pentru premizele%regulilor care descriu modelul pentru f, unde mf este numarul partitiilor fuzzy%tetaf=MMfx1 centre multimi fuzzy consecinte reguli ce descriu modelul fuzzy pentru f(x)%x0g=nxMg, sigmag=nxmg, tetag=mgx1 idem pentru functia g%P=matricea Lyapunov calculata aprioric, Q matrice nxn pozitiv definita utilizata in ecuatia Lyapunov%|tetaf|<=Mf, |tetag|<=Mg limitari impuse parametrilor pe parcursul calculelor%|tetag|>E a. i. modelul fuzzy pentru g sa fie pozitiv ca valori numerice calculate%V=limitare impusa functiei Lyapunov asociate procesului; cand functia Lyapunov depaseste%aceasta valoare apare o comanda supervizoare care o forteaza sa devina mai mica ca V%k= nx1 asigura convergenta exponentiala spre zero a erorii%gam1,gam2=pasi de ajustare a parametrilor tetaf, tetag%ymn=derivata de ordin n a referintei%fu,gl,gu=limitele functiilor f, g

clear

%date initiale

%numar intrarinn=2;

%starea initialax=zeros(nn,1); x(1)=-pi/60;

%semnale comanda initialeuc=[];us=[];

%limita domeniu valori intrare in procesMx=pi/6;

%definire parametrii functii radialemf=5; %numar variabile lingvistice pentru modelul fsigmf=ones(1,mf)*pi/24; %definire variante pentru variabilel lingvistice

Page 43: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

xcf=(-Mx:2*Mx/(mf-1):Mx)';% centre variabile lingvisticeMMf=mf*mf; %numar reguli implicate in descrierea modelului x0f=[];sigmaf=[]; %premize reguli for i=1:mf for j=1:mf x0f=[x0f [xcf(i);xcf(j)]]; sigmaf=[sigmaf [sigmf(i);sigmf(j)]]; end; end; Mf=16;%domeniu parametrii concluzii regulitetaf=3*(rand(MMf,1)-0.5)/0.5;%centre concluzii legi

mg=5; %numar variabile lingvistice pentru modelul gsigmg=ones(1,mg)*pi/24; %definire variante pentru variabilel lingvisticexcg=(-Mx:2*Mx/(mg-1):Mx)';% centre variabile lingvisticeMMg=mg*mg; %numar reguli implicate in descrierea modelului x0g=[];sigmag=[]; %premize reguli for i=1:mg for j=1:mg x0g=[x0g [xcg(i);xcg(j)]]; sigmag=[sigmag [sigmg(i);sigmg(j)]]; end; end; E=0.7;Mg=1.6;%domeniu parametrii concluzii regulitetag=0.15*(rand(MMg,1)-0.5)/0.5+1.15;%centre concluzii legi

%parametrii implicati in ecuatia Lyapunovk2=1;%corespunde lui ek1=2;%corespunde primei derivate a eroriiK=[k2;k1];Q=eye(2)*10;AA=pi/4;P=inv([0 -k2 -k2 0;1 -k1 0 -k2;1 0 -k1 -k2;0 1 1 -2*k1])*(-1*Q(:));P=[P(1) P(2);P(3) P(4)];ll=min(eig(P));V=ll*(2*AA*2)^2/2;

%pasii de cautaregam1=5;gam2=0.1;

%marginirea functionalelor ce descriu procesulfun='pendul';fu='pend_fu';gl='pend_gl';gu='pend_gu';

%modelul de referintareferinta ='sis_ref';

%perioada de esantionareTs=0.01;

%prima referintaym=feval(referinta,0,Ts,zeros(nn+1,1));

%eroarea initialae=x-ym(1:nn);

g=9.8;mc=1;m=0.1;l=0.5;

Page 44: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

no=input('numar iteratii=');bc=zeros(nn,1);bc(nn)=1;for k=1:no timp(k)=(k-1)*Ts; [uc(k,1),us(k,1),Ve(k)]=inada_u(x(:,k),x0f,sigmaf,tetaf(:,k),x0g,sigmag,tetag(:,k),ym(nn+1,k),K,e(:,k),P,bc,V,fu,gu,gl); u(k,1)=uc(k)+us(k); [T,Y]=ode23(fun,(k-1)*Ts,k*Ts,[x(:,k);u(k)]); [ny,my]=size(Y); x(:,k+1)=Y(ny,1:my-1)'; xm(k)=sim_f1(x(:,k),x0f,sigmaf,tetaf(:,k))+sim_f1(x(:,k),x0g,sigmag,tetag(:,k))*u(k);

aa(k)=(g*sin(x(1,k))-(m*l*x(2,k)^2*cos(x(1,k))*sin(x(1,k)))/(mc+m)+cos(x(1,k))/(mc+m)*u(k))/(l*(4/3-m*cos(x(1,k))^2/(mc+m))); em(k)=aa(k)-xm(k);

ym(:,k+1)=feval(referinta,k+1,Ts,ym(:,k)); e(:,k+1)=ym(1:nn,k+1)-x(:,k+1); csif=radial(x(:,k+1),x0f,sigmaf); csig=csif;

%ajustarea parametrilor

cof1=abs(tetaf(:,k)); co=e(:,k+1)'*P*bc; cof2(k)=co*tetaf(:,k)'*csif;

tetaf(:,k+1)=ada_teta(tetaf(:,k),co,cof1,cof2(k),Mf,gam1,csif,-1); cog1=abs(tetag(:,k)); cog2(k)=co*tetag(:,k)'*csig*uc(k);

tetag(:,k+1)=ada_teta(tetag(:,k),co,cog1,cog2(k),Mg,gam2,csig*uc(k),-1); tetag(:,k+1)=ada_lim(tetag(:,k),tetag(:,k+1),gam2,E,co,csig*uc(k),-1); clck,e(1,k),e(2,k),em(k),Ve(k)end;

u=[0;u];timp(k+1)=k*Ts;subplot(211),plot(timp,ym(1,:),timp,x(1,:)),grid,title('iesire proces si referinta')subplot(212),plot(timp,u),grid,title('comanda')subplot(111)

inada_f2.m simulatorul pentru control fuzzy adaptiv indirect cu cel de al doilea tip de model fuzzy

%genereaza comanda u si adapteaza parametrii tetaf,tetag %x=vector stare (faze) proces nx1 unde x(1) reprezinta iesirea din proces, x(2) derivata de %ordin 2, ....%ym=referinta nx1 ym(1) iesirea dorita, ym(2) derivata iesirii dorite,...%x0f= nxMMf centre multimi fuzzy modelul functiei f(x) und MMf este numarula regulilor fuzzy%sigmf=nxMMf varianta functiilor de apartenenta multimilor fuzzy considerate pentru premizele%regulilor care descriu modelul pentru f%tetaf=MMfx1 centre multimi fuzzy consecinte reguli ce descriu modelul fuzzy pentru f(x)%x0g=nxMg, sigmag=nxmg, tetag=mgx1 idem pentru functia g

Page 45: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

%P=matricea Lyapunov calculata aprioric, Q matrice nxn pozitiv definita utilizata in ecuatia Lyapunov%|tetaf|<=Mf, |tetag|<=Mg limitari impuse parametrilor pe parcursul calculelor%|tetag|>E a. i. modelul fuzzy pentru g sa fie pozitiv ca valori numerice calculate%V=limitare impus-a functiei Lyapunov asociate procesului; cand functia Lyapunov depaseste%aceasta valoare apare o comanda supervizoare care o forteaza sa devina mai mica ca V%K= nx1 asigura convergenta exponentiala spre zero a erorii%gam1,gam2=pasi de ajustare a parametrilor tetaf, tetag%ymn=derivata de ordin n a referintei%fu,gl,gu=limitele functiilor f, g

clear,clc%date initiale%numar intrarinn=2;

%starea initialax=zeros(nn,1); x(1)=-pi/60;

%limita domeniu valori intrare in procesMx=pi/6;

%definire parametrii functii radiale pentru functia fMMf=15;%numar reguliMf=16;%domeniu parametrii ajustabiliS=0.1;%limitare inferioara dispersie pentru a asigura acoperirea domeniuluix0f=Mx*(rand(nn,MMf)-0.5)/0.5;sigmaf=(pi-S)*(rand(nn,MMf)-0.5)+(S+pi)/2;yfl=3*(rand(MMf,1)-0.5)/0.5; tetaf=[yfl x0f' sigmaf'];tetaf=tetaf(:);%parametrii ce se ajusteaza

%definire parametrii functii radiale pentru functia g MMg=15;E=0.7;Mg=1.6;%domeniu parametrii ajustabilix0g=Mx*(rand(nn,MMg)-0.5)/0.5;sigmag=(pi-S)*(rand(nn,MMf)-0.5)+(S+pi)/2;ygl=((Mg-E)/2)*(rand(MMg,1)-0.5)/0.5+(Mg+S)/2;tetag=[ygl x0g' sigmag'];tetag=tetag(:);

%parametrii implicati in ecuatia Lyapunovk2=1;%corespunde lui ek1=2;%corespunde primei derivate a eroriiK=[k2;k1];Q=eye(2)*10;AA=pi/30;P=inv([0 -k2 -k2 0;1 -k1 0 -k2;1 0 -k1 -k2;0 1 1 -2*k1])*(-1*Q(:));P=[P(1) P(2);P(3) P(4)];ll=min(eig(P));V=ll*(2*AA*2)^2/2;

%pasii de cautaregam1=50;gam2=1;

%marginirea functionalelor ce descriu procesulfun='pendul';fu='pend_fu';gl='pend_gl';gu='pend_gu';

Page 46: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

%modelul de referintareferinta ='sis_ref';

%perioada de esantionareTs=0.01;

%prima referintaym=feval(referinta,1,Ts,zeros(nn+1,1));

%eroarea initialae=x-ym(1:nn);

bc=zeros(max(size(P)),1);bc(length(bc))=1;g=9.8;mc=1;m=0.1;l=0.5;no=input('numar iteratii=');for k=1:no timp(k)=(k-1)*Ts; [uc(k,1),us(k,1),Ve(k,1)]=inada_u(x(:,k),x0f,sigmaf,yfl,x0g,sigmag,ygl,ym(nn,k),K,e(:,k),P,bc,V,fu,gu,gl); u(k,1)=uc(k)+us(k); [T,Y]=ode23(fun,(k-1)*Ts,k*Ts,[x(:,k);u(k)]); [ny,my]=size(Y); x(:,k+1)=Y(ny,1:my-1)'; xm(k)=sim_f1(x(:,k),x0f,sigmaf,yfl)+sim_f1(x(:,k),x0g,sigmag,ygl)*u(k); aa(k)=(g*sin(x(1,k))-(m*l*x(2,k)^2*cos(x(1,k))*sin(x(1,k)))/(mc+m)+cos(x(1,k))/(mc+m)*u(k))/(l*(4/3-m*cos(x(1,k))^2/(mc+m))); em(k)=aa(k)-xm(k); ym(:,k+1)=feval(referinta,k+1,Ts,ym(:,k)); e(:,k+1)=ym(1:nn,k+1)-x(:,k+1); %calcul derivate [dfy,dfx,dfs]=df_dteta(x(:,k+1),x0f,sigmaf,yfl); df=[dfy dfx' dfs'];df=df(:); [dgy,dgx,dgs]=df_dteta(x(:,k+1),x0g,sigmag,ygl); dg=[dgy dgx' dgs'];dg=dg(:);

%ajustarea parametrilor cof1=abs(tetaf(:,k)); co=e(:,k+1)'*P*bc; cof2(k)=co*tetaf(:,k)'*df;

tetaf(:,k+1)=ada_teta(tetaf(:,k),co,cof1,cof2(k),Mf,gam1,df,-1); dfs=dfs'; M=MMf; tetaf(3*M+1:5*M,k+1)=ada_lim(tetaf(3*M+1:5*M,k),tetaf(3*M+1:5*M,k+1),gam1,S,co,dfs(:),-1);

yfl=tetaf(1:M,k+1); x0f=[tetaf(M+1:2*M,k+1) tetaf(2*M+1:3*M,k+1)]'; sigmaf=[tetaf(3*M+1:4*M,k+1) tetaf(4*M+1:5*M,k+1)]'; cog1=abs(tetag(:,k)); cog2(k)=co*tetag(:,k)'*dg*uc(k); M=MMg; tetag(:,k+1)=ada_teta(tetag(:,k),co,cog1,cog2(k),Mg,gam2,dg*uc(k),-1); tetag(1:M,k+1)=ada_lim(tetag(1:M,k),tetag(1:M,k+1),gam2,E,co,dgy*uc(k),-1); dgs=dgs'; tetag(3*M+1:5*M,k+1)=ada_lim(tetag(3*M+1:5*M,k),tetag(3*M+1:5*M,k+1),gam2,S,co,dgs(:)*uc(k),-1); ygl=tetag(1:M,k+1); x0g=[tetag(M+1:2*M,k+1) tetag(2*M+1:3*M,k+1)]'; sigmag=[tetag(3*M+1:4*M,k+1) tetag(4*M+1:5*M,k+1)]';

Page 47: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

clck,e(1,k),e(2,k),em(k),Ve(k)end;u=[0;u];timp(k+1)=k*Ts;subplot(211),plot(timp,ym(1,:),timp,x(1,:)),grid,title('iesire proces si referinta')subplot(212),plot(timp,u),grid,title('comanda')subplot(111)

linad_f1.m simulator pentru controller fuzzy adaptiv indirect obţinut prin liniarizare

%function [u,tetaf,tetag]=inada_f1(x,ym,x0f,sigmaf,tetaf,x0g,sigmag,tetag,P,Q,Mf,Mg,E,V,k,gam1,gama2,ymn,fu,gl,gu)

%[u,tetaf,tetag]=inada_f1(x,ym,x0f,sigmaf,tetaf,x0g,sigmag,tetag,P,Mf,Mg,E,V)%genereaza comanda u si adapteaza parametrii tetaf,tetag %x=vector stare (faze) proces nx1 unde x(1) reprezinta iesirea din proces, x(2) derivata de %ordin 2, ....%ym=referinta nx1 ym(1) iesirea dorita, ym(2) derivata iesirii dorite,...%x0f= nxMMf centre multimi fuzzy modelul functiei f(x) und MMf este numarula regulilor fuzzy%sigmf=nxmf varianta functiilor de apartenenta multimilor fuzzy considerate pentru premizele%regulilor care descriu modelul pentru f, unde mf este numarul partitiilor fuzzy%tetaf=MMfx1 centre multimi fuzzy consecinte reguli ce descriu modelul fuzzy pentru f(x)%x0g=nxMg, sigmag=nxmg, tetag=mgx1 idem pentru functia g%P=matricea Lyapunov calculata aprioric, Q matrice nxn pozitiv definita utilizata in ecuatia Lyapunov%|tetaf|<=Mf, |tetag|<=Mg limitari impuse parametrilor pe parcursul calculelor%|tetag|>E a. i. modelul fuzzy pentru g sa fie pozitiv ca valori numerice calculate%V=limitare impusa functiei Lyapunov asociate procesului; cand functia Lyapunov depaseste%aceasta valoare apare o comanda supervizoare care o forteaza sa devina mai mica ca V%k= nx1 asigura convergenta exponentiala spre zero a erorii%gam1,gam2=pasi de ajustare a parametrilor tetaf, tetag%ymn=derivata de ordin n a referintei%fu,gl,gu=limitele functiilor f, g

clear

%date initiale

%numar intrarinn=2;

%starea initialax=zeros(nn,1); x(1)=-pi/30;

%semnale comanda initialeuc=[];us=[];

%limita domeniu valori intrare in procesMx=pi/6;

%definire parametrii functii radialemf=5; %numar variabile lingvistice pentru modelul fsigmf=ones(1,mf)*pi/24; %definire variante pentru variabilel lingvisticexcf=(-Mx:2*Mx/(mf-1):Mx)';% centre variabile lingvisticeMMf=mf*mf; %numar reguli implicate in descrierea modelului x0f=[];sigmaf=[]; %premize reguli for i=1:mf for j=1:mf x0f=[x0f [xcf(i);xcf(j)]]; sigmaf=[sigmaf [sigmf(i);sigmf(j)]];

Page 48: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

end; end; Mf=16;%domeniu parametrii concluzii regulitetaf=3*(rand(MMf,1)-0.5)/0.5;%centre concluzii legi

mg=5; %numar variabile lingvistice pentru modelul gsigmg=ones(1,mg)*pi/24; %definire variante pentru variabilel lingvisticexcg=(-Mx:2*Mx/(mg-1):Mx)';% centre variabile lingvisticeMMg=mg*mg; %numar reguli implicate in descrierea modelului x0g=[];sigmag=[]; %premize reguli for i=1:mg for j=1:mg x0g=[x0g [xcg(i);xcg(j)]]; sigmag=[sigmag [sigmg(i);sigmg(j)]]; end; end; E=0.7;Mg=1.6;%domeniu parametrii concluzii regulitetag=0.15*(rand(MMg,1)-0.5)/0.5+1.15;%centre concluzii legi

%parametrii implicati in ecuatia Lyapunovk2=1;%corespunde lui ek1=2;%corespunde primei derivate a eroriiK=[k2;k1];Q=eye(2)*10;AA=pi/30;P=inv([0 -k2 -k2 0;1 -k1 0 -k2;1 0 -k1 -k2;0 1 1 -2*k1])*(-1*Q(:));P=[P(1) P(2);P(3) P(4)];ll=min(eig(P));V=ll*(2*AA*2)^2/2;

%pasii de cautaregam1=50;gam2=1;

%marginirea functionalelor ce descriu procesulfun='pendul';fu='pend_fu';gl='pend_gl';gu='pend_gu';

%modelul de referintareferinta ='sis_ref';

%perioada de esantionareTs=0.01;

%prima referintaym=feval(referinta,0,Ts,zeros(nn+1,1));

%eroarea initialae=x-ym(1:nn);

g=9.8;mc=1;m=0.1;l=0.5;bc=zeros(nn,1);bc(nn)=1;no=input('numar iteratii=');for k=1:no timp(k)=(k-1)*Ts; uc(k,1)=(-sim_f1(x(:,k),x0f,sigmaf,tetaf(:,k))+ym(nn,k)+K'*e(:,k))/sim_f1(x(:,k),x0g,sigmag,tetag(:,k)); Ve(k)=e(:,k)'*P*e(:,k); [T,Y]=ode23(fun,(k-1)*Ts,k*Ts,[x(:,k);uc(k)]); [ny,my]=size(Y);

Page 49: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

x(:,k+1)=Y(ny,1:my-1)'; xm(k)=sim_f1(x(:,k),x0f,sigmaf,tetaf(:,k))+sim_f1(x(:,k),x0g,sigmag,tetag(:,k))*uc(k); aa(k)=(g*sin(x(1,k))-(m*l*x(2,k)^2*cos(x(1,k))*sin(x(1,k)))/(mc+m)+cos(x(1,k))/(mc+m)*uc(k))/(l*(4/3-m*cos(x(1,k))^2/(mc+m))); em(k)=aa(k)-xm(k); ym(:,k+1)=feval(referinta,k+1,Ts,ym(:,k)); e(:,k+1)=ym(1:nn,k+1)-x(:,k+1); csif=radial(x(:,k+1),x0f,sigmaf); csig=csif;

%ajustarea parametrilor co=e(:,k+1)'*P*bc; tetaf(:,k+1)=tetaf(:,k)-gam1*co*csif; tetag(:,k+1)=tetag(:,k)-gam2*co*csig*uc(k);clck,e(1,k),e(2,k),em(k),Ve(k)end;uc=[0;uc];timp(k+1)=k*Ts;subplot(211),plot(timp,ym(1,:),timp,x(1,:)),grid,title('iesire proces si referinta')subplot(212),plot(timp,uc),grid,title('comanda')subplot(111)

ada_f1.m controller fuzzy adaptiv direct cu primul tip de model fuzzy

%function [u,tetaf,tetag]=ada_f1(x,ym,x0f,sigmaf,tetaf,bl,P,Q,Mf,Mg,E,V,k,gam1,gama2,ymn,fu,gl,gu)

%[u,tetaf]=inada_f1(x,ym,x0f,sigmaf,tetaf,bl,P,Mf,Mg,E,V)%genereaza comanda u si adapteaza parametrii tetaf,tetag %x=vector stare (faze) proces nx1 unde x(1) reprezinta iesirea din proces, x(2) derivata de %ordin 2, ....%ym=referinta nx1 ym(1) iesirea dorita, ym(2) derivata iesirii dorite,...%x0f= nxMMf centre multimi fuzzy modelul functiei f(x) und MMf este numarula regulilor fuzzy%sigmf=nxmf varianta functiilor de apartenenta multimilor fuzzy considerate pentru premizele%regulilor care descriu modelul pentru f, unde mf este numarul partitiilor fuzzy%tetaf=MMfx1 centre multimi fuzzy consecinte reguli ce descriu modelul fuzzy pentru f(x)%P=matricea Lyapunov calculata aprioric, Q matrice nxn pozitiv definita utilizata in ecuatia Lyapunov%|tetaf|<=Mf, |tetag|<=Mg limitari impuse parametrilor pe parcursul calculelor%V=limitare impusa functiei Lyapunov asociate procesului; cand functia Lyapunov depaseste%aceasta valoare apare o comanda supervizoare care o forteaza sa devina mai mica ca V%k= nx1 asigura convergenta exponentiala spre zero a erorii%gam1,gam2=pasi de ajustare a parametrilor tetaf, tetag%ymn=derivata de ordin n a referintei%fu=limita functiei f

clear

g=9.8;mc=1;m=0.1;l=0.5;

no=input('numar iteratii=');Ts=input('perioada de esantionare=');gam1=input('gama1=');

nn=2; %dimensiune intrare

fu='oscil_fu';fun='oscil';

Page 50: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

k2=1;%corespunde lui ek1=2;%corespunde primei derivate a eroriiK=[k2;k1];Q=eye(2)*10;P=inv([0 -k2 -k2 0;1 -k1 0 -k2;1 0 -k1 -k2;0 1 1 -2*k1])*(-1*Q(:));P=[P(1) P(2);P(3) P(4)];[mp,np]=size(P);ll=min(eig(P));AA=1;V=ll*(2*AA*2)^2/2;

Mf=30;Mx=10;bl=1;

bc=zeros(max(size(P)),1);bc(length(bc))=1;mf=5; %partitiile fuzzy implicate in acoperirea domeniului

sigmf=ones(1,mf)*pi/24; %numai pentru o componenta a lui xxcf=(-Mx:2*Mx/(mf-1):Mx)';

%construiesc premizele a mf*mf reguli pentru descrierea lui f, adica toate combinatiile %multimilor fuzzy ce acopera domeniul lui x MMf=mf*mf; x0f=[];sigmaf=[]; for i=1:mf for j=1:mf x0f=[x0f [xcf(i);xcf(j)]]; sigmaf=[sigmaf [sigmf(i);sigmf(j)]]; end; end; %parametrii initialitetaf=Mx*(rand(MMf,1)-0.5)/0.5;

x=zeros(nn,1)*2;

%ym=[Ts;tan(2*AA/pi)];ymn=0;ym(:,1)=[sin(Ts);cos(Ts)]*AA;ymn=-ym(1);%ym=[AA;0];ymn=0;e(:,1)=ym(:,1)-x(:,1);

csi=radial(x,x0f,sigmaf);

for k=1:no timp(k)=(k-1)*Ts; [uc(k,1),us(k,1),Ve(k)]=ada_u(x(:,k),x0f,sigmaf,tetaf(:,k),bl,ymn,K,e(:,k),P,bc,V,fu); u(k,1)=uc(k)+us(k); [T,Y]=ode23(fun,(k-1)*Ts,k*Ts,[x(:,k);u(k)]); [ny,my]=size(Y); x(:,k+1)=Y(ny,1:my-1)'; xm(k)=sim_f1(x(:,k),x0f,sigmaf,tetaf(:,k))+bl*u(k);

aa(k)=0.1*x(2,k)-x(1,k)^3+12*cos((k)*Ts)+u(k); em(k)=aa(k)-xm(k); %ym(:,k+1)=[ym(1,k)+Ts*tan(2*AA/pi)*sign(cos(k*Ts));sign(cos(k*Ts))*tan(2*AA/pi)];

Page 51: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

ym(:,k+1)=[sin((k+1)*Ts);cos((k+1)*Ts)]*AA; ymn=-ym(1,k+1);

%ym(:,k+1)=[AA;0];

e(:,k+1)=ym(:,k+1)-x(:,k+1); csif=radial(x(:,k+1),x0f,sigmaf); csig=csif;

%ajustarea parametrilor

cof1=abs(tetaf(:,k)); co=e(:,k+1)'*P(:,np); cof2(k)=co*tetaf(:,k)'*csif;

tetaf(:,k+1)=ada_teta(tetaf(:,k),co,cof1,cof2(k),Mf,gam1,csif,1);

clck,e(1,k),e(2,k),em(k),Ve(k)end;

u=[0;u];timp(k+1)=k*Ts;subplot(211),plot(timp,ym(1,:),timp,x(1,:)),grid,title('iesire proces si referinta')subplot(212),plot(timp,u),grid,title('comanda')subplot(111)

ada_f2.m controller fuzzy adaptiv direct cu cel de-al doilea tip de model fuzzy

%function [u,tetaf]=ada_f2(x,ym,x0f,sigmaf,tetaf,bl,P,Q,Mf,Mg,S,V,k,gam1,ymn,fu)

%[u,tetaf,tetag]=inada_f2(x,ym,x0f,sigmaf,tetaf,x0g,sigmag,tetag,P,Mf,Mg,E,V)%genereaza comanda u si adapteaza parametrii tetaf,tetag %x=vector stare (faze) proces nx1 unde x(1) reprezinta iesirea din proces, x(2) derivata de %ordin 2, ....%ym=referinta nx1 ym(1) iesirea dorita, ym(2) derivata iesirii dorite,...%x0f= nxMMf centre multimi fuzzy modelul functiei f(x) und MMf este numarula regulilor fuzzy%sigmf=nxMMf varianta functiilor de apartenenta multimilor fuzzy considerate pentru premizele%regulilor care descriu modelul pentru f%tetaf=MMfx1 centre multimi fuzzy consecinte reguli ce descriu modelul fuzzy pentru f(x)%P=matricea Lyapunov calculata aprioric, Q matrice nxn pozitiv definita utilizata in ecuatia Lyapunov%|tetaf|<=Mf, |tetag|<=Mg limitari impuse parametrilor pe parcursul calculelor%|tetag|>E a. i. modelul fuzzy pentru g sa fie pozitiv ca valori numerice calculate%V=limitare impus-a functiei Lyapunov asociate procesului; cand functia Lyapunov depaseste%aceasta valoare apare o comanda supervizoare care o forteaza sa devina mai mica ca V%K= nx1 asigura convergenta exponentiala spre zero a erorii%gam1=pasi de ajustare a parametrilor tetaf, tetag%ymn=derivata de ordin n a referintei%fu,=limitele functiei f

clearno=input('numar iteratii=');Ts=input('perioada de esantionare=');gam1=input('gama1=');

nn=2; %dimensiune intrare

Page 52: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

fu='pend_fu';fun='pendul';

k2=1;%corespunde lui ek1=2;%corespunde primei derivate a eroriiK=[k2;k1];Q=eye(2)*10;P=inv([0 -k2 -k2 0;1 -k1 0 -k2;1 0 -k1 -k2;0 1 1 -2*k1])*(-1*Q(:));P=[P(1) P(2);P(3) P(4)];[mp,np]=size(P);ll=min(eig(P));AA=pi/30;V=ll*(4*AA)^2/2;Mf=16;Mx=pi/6;S=0.1;bl=1;%gam1=10;gam2=1;

bc=zeros(max(size(P)),1);bc(length(bc))=1;%numarul regulilor fuzzy implicateMMf=25;

sigmaf=(pi-S)*(rand(nn,MMf)-0.5)+(S+pi)/2; x0f=Mx*(rand(nn,MMf)-0.5)/0.5;

yfl=Mf/10*(rand(MMf,1)-0.5)/0.5;

tetaf=[yfl x0f' sigmaf'];tetaf=tetaf(:);x=zeros(nn,1);x(1)=-pi/60;

ym(:,1)=[sin(Ts);cos(Ts)]*AA;ymn=-ym(1);%ym=[AA;0];ymn=0;

e(:,1)=ym(:,1)-x(:,1);

for k=1:no timp(k)=(k-1)*Ts; [uc(k,1),us(k,1),Ve(k,1)]=ada_u(x(:,k),x0f,sigmaf,yfl,bl,ymn,K,e(:,k),P,bc,V,fu); u(k,1)=uc(k)+us(k); [T,Y]=ode23(fun,(k-1)*Ts,k*Ts,[x(:,k);u(k)]); [ny,my]=size(Y); x(:,k+1)=Y(ny,1:my-1)'; xm(k)=sim_f1(x(:,k),x0f,sigmaf,yfl)+bl*u(k); em(k)=xm(k)-x(1,k+1); ym(:,k+1)=[sin((k+1)*Ts);cos((k+1)*Ts)]*AA; ymn=-ym(1,k+1); %ym(:,k+1)=[AA;0]; e(:,k+1)=ym(:,k+1)-x(:,k+1); [dfy,dfx,dfs]=df_dteta(x(:,k+1),x0f,sigmaf,yfl); df=[dfy dfx' dfs'];df=df(:); %ajustarea parametrilor cof1=abs(tetaf(:,k)); co=e(:,k+1)'*P(:,np); cof2(k)=co*tetaf(:,k)'*df;

Page 53: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

tetaf(:,k+1)=ada_teta(tetaf(:,k),co,cof1,cof2(k),Mf,gam1,df,1); dfs=dfs'; M=MMf; tetaf(3*M+1:5*M,k+1)=ada_lim(tetaf(3*M+1:5*M,k),tetaf(3*M+1:5*M,k+1),gam1,S,co,dfs(:),1);

yfl=tetaf(1:M,k+1); x0f=[tetaf(M+1:2*M,k+1) tetaf(2*M+1:3*M,k+1)]'; sigmaf=[tetaf(3*M+1:4*M,k+1) tetaf(4*M+1:5*M,k+1)]'; clck,e(1,k),e(2,k),Ve(k)end;u=[0;u];timp(k+1)=k*Ts;subplot(211),plot(timp,ym(1,:),timp,x(1,:)),grid,title('iesire proces si referinta')subplot(212),plot(timp,u),grid,title('comanda')subplot(111)

liada_f1.m controller fuzzy adapriv direct cu primul tip de model fuzzy folosit pentru sistemele liniare

%genereaza comanda u si adapteaza parametrii tetaf,tetag %x=vector stare (faze) proces nx1 unde x(1) reprezinta iesirea din proces, x(2) derivata de %ordin 2, ....%ym=referinta nx1 ym(1) iesirea dorita, ym(2) derivata iesirii dorite,...%x0f= nxMMf centre multimi fuzzy modelul functiei f(x) und MMf este numarula regulilor fuzzy%sigmf=nxmf varianta functiilor de apartenenta multimilor fuzzy considerate pentru premizele%regulilor care descriu modelul pentru f, unde mf este numarul partitiilor fuzzy%tetaf=MMfx1 centre multimi fuzzy consecinte reguli ce descriu modelul fuzzy pentru f(x)%P=matricea Lyapunov calculata aprioric, Q matrice nxn pozitiv definita utilizata in ecuatia Lyapunov%|tetaf|<=Mf, |tetag|<=Mg limitari impuse parametrilor pe parcursul calculelor%V=limitare impusa functiei Lyapunov asociate procesului; cand functia Lyapunov depaseste%aceasta valoare apare o comanda supervizoare care o forteaza sa devina mai mica ca V%k= nx1 asigura convergenta exponentiala spre zero a erorii%gam1,gam2=pasi de ajustare a parametrilor tetaf, tetag%ymn=derivata de ordin n a referintei%fu=limita functiei f

clear

no=input('numar iteratii=');Ts=input('perioada de esantionare=');gam1=input('gama1=');

nn=2; %dimensiune intrare

fun='oscil';referinta='sis_ref';

k2=1;%corespunde lui ek1=2;%corespunde primei derivate a eroriiK=[k2;k1];Q=eye(2)*10;P=inv([0 -k2 -k2 0;1 -k1 0 -k2;1 0 -k1 -k2;0 1 1 -2*k1])*(-1*Q(:));P=[P(1) P(2);P(3) P(4)];[mp,np]=size(P);ll=min(eig(P));AA=3;

Page 54: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

Mf=5;Mx=4;bl=1/0.3;

mf=5; %partitiile fuzzy implicate in acoperirea domeniului

sigmf=ones(1,mf); %numai pentru o componenta a lui xxcf=(-Mx:2*Mx/(mf-1):Mx)';

%construiesc premizele a mf*mf reguli pentru descrierea lui f, adica toate combinatiile %multimilor fuzzy ce acopera domeniul lui x MMf=mf*mf; x0f=[];sigmaf=[]; for i=1:mf for j=1:mf x0f=[x0f [xcf(i);xcf(j)]]; sigmaf=[sigmaf [sigmf(i);sigmf(j)]]; end; end; %parametrii initialitetaf=Mx*(rand(MMf,1)-0.5)/0.5;

x=zeros(nn,1)*2;

ym=feval(referinta,0,Ts,zeros(nn+1,1),AA,1);e(:,1)=ym(1:nn,1)-x(:,1);bc=zeros(nn,1);bc(nn)=bl;for k=1:no Ve(k,1)=e(:,k)'*P*e(:,k); timp(k)=(k-1)*Ts; u(k,1)=sim_f1(x(:,k),x0f,sigmaf,tetaf(:,k)); [T,Y]=ode23(fun,(k-1)*Ts,k*Ts,[x(:,k);u(k)]); [ny,my]=size(Y); x(:,k+1)=Y(ny,1:my-1)'; xm(k)=sim_f1(x(:,k),x0f,sigmaf,tetaf(:,k))+bl*u(k);

em(k)=xm(k)-(1/0.3*(-x(2,k)+u(k))); ym(:,k+1)=feval(referinta,k+1,Ts,ym(:,k),AA,1); e(:,k+1)=ym(1:nn,k+1)-x(:,k+1); csif=radial(x(:,k+1),x0f,sigmaf); %ajustarea parametrilor

cof1=abs(tetaf(:,k)); co=e(:,k+1)'*P(:,np); tetaf(:,k+1)=tetaf(:,k)+gam1*co*csif;

clck,e(1,k),e(2,k),em(k),Ve(k)end;

u=[0;u];timp(k+1)=k*Ts;subplot(211),plot(timp,ym(1,:),timp,x(1,:)),grid,title('iesire proces si referinta')subplot(212),plot(timp,u),grid,title('comanda')subplot(111)

Page 55: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

liada_f2.m controller fuzzy adaptiv direct cu cel de-al doilea tip de model fuzzy folosit pentru sistemele liniare

%[u,tetaf,tetag]=inada_f2(x,ym,x0f,sigmaf,tetaf,x0g,sigmag,tetag,P,Mf,Mg,E,V)%genereaza comanda u si adapteaza parametrii tetaf,tetag %x=vector stare (faze) proces nx1 unde x(1) reprezinta iesirea din proces, x(2) derivata de %ordin 2, ....%ym=referinta nx1 ym(1) iesirea dorita, ym(2) derivata iesirii dorite,...%x0f= nxMMf centre multimi fuzzy modelul functiei f(x) und MMf este numarula regulilor fuzzy%sigmf=nxMMf varianta functiilor de apartenenta multimilor fuzzy considerate pentru premizele%regulilor care descriu modelul pentru f%tetaf=MMfx1 centre multimi fuzzy consecinte reguli ce descriu modelul fuzzy pentru f(x)%P=matricea Lyapunov calculata aprioric, Q matrice nxn pozitiv definita utilizata in ecuatia Lyapunov%|tetaf|<=Mf, |tetag|<=Mg limitari impuse parametrilor pe parcursul calculelor%|tetag|>E a. i. modelul fuzzy pentru g sa fie pozitiv ca valori numerice calculate%V=limitare impus-a functiei Lyapunov asociate procesului; cand functia Lyapunov depaseste%aceasta valoare apare o comanda supervizoare care o forteaza sa devina mai mica ca V%K= nx1 asigura convergenta exponentiala spre zero a erorii%gam1=pasi de ajustare a parametrilor tetaf, tetag%ymn=derivata de ordin n a referintei

clearno=input('numar iteratii=');Ts=input('perioada de esantionare=');gam1=input('gama1=');

nn=2; %dimensiune intrare

fun='oscil';referinta='sis_ref';Mf=10;Mx=4;S=1;bl=1/0.3;%numarul regulilor fuzzy implicateMMf=5;k2=1;%corespunde lui ek1=2;%corespunde primei derivate a eroriiK=[k2;k1];Q=eye(2)*10;P=inv([0 -k2 -k2 0;1 -k1 0 -k2;1 0 -k1 -k2;0 1 1 -2*k1])*(-1*Q(:));P=[P(1) P(2);P(3) P(4)];[mp,np]=size(P);AA=10;sigmaf=(3-S)/2*(rand(nn,MMf)-0.5)+(S+3)/2; x0f=Mx*(rand(nn,MMf)-0.5)/0.5;

yfl=Mf*(rand(MMf,1)-0.5)/0.5;

tetaf=[yfl x0f' sigmaf'];tetaf=tetaf(:);x=zeros(nn,1);ym=feval(referinta,0,Ts,zeros(nn+1,1),AA,0.5);

e(:,1)=ym(1:nn,1)-x(:,1);

for k=1:noVe(k,1)=e(:,k)'*P*e(:,k); timp(k)=(k-1)*Ts; u(k,1)=sim_f1(x(:,k),x0f,sigmaf,yfl); [T,Y]=ode23(fun,(k-1)*Ts,k*Ts,[x(:,k);u(k)]); [ny,my]=size(Y);

Page 56: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

x(:,k+1)=Y(ny,1:my-1)'; xm(k)=sim_f1(x(:,k),x0f,sigmaf,yfl)+bl*u(k); em(k)=xm(k)-(1/0.3*(-x(2,k)+u(k))); ym(:,k+1)=feval(referinta,k+1,Ts,ym(:,k),AA,0.5); e(:,k+1)=ym(1:nn,k+1)-x(:,k+1); [dfy,dfx,dfs]=df_dteta(x(:,k+1),x0f,sigmaf,yfl); df=[dfy dfx' dfs'];df=df(:); %ajustarea parametrilor cof1=abs(tetaf(:,k)); co=e(:,k+1)'*P(:,np); tetaf(:,k+1)=tetaf(:,k)+gam1*co*df; dfs=dfs'; M=MMf; tetaf(3*M+1:5*M,k+1)=ada_lim(tetaf(3*M+1:5*M,k),tetaf(3*M+1:5*M,k+1),gam1,S,co,dfs(:),1);

yfl=tetaf(1:M,k+1); x0f=[tetaf(M+1:2*M,k+1) tetaf(2*M+1:3*M,k+1)]'; sigmaf=[tetaf(3*M+1:4*M,k+1) tetaf(4*M+1:5*M,k+1)]'; clck,e(1,k),e(2,k),em(k),Ve(k)end;u=[0;u];timp(k+1)=k*Ts;subplot(211),plot(timp,ym(1,:),timp,x(1,:)),grid,title('iesire proces si referinta')subplot(212),plot(timp,u),grid,title('comanda')subplot(111)

oscil.m modele procese liniare

function yprim=oscil(t,y)

%yprim(1)=y(2);%yprim(2)=y(3);%yprim(3)=1/0.3*(-y(3)+0.3*y(2)-y(3)+y(4));%yprim(4)=0;

yprim(1)=y(2);yprim(2)=1/0.3*(-0.7*y(2)+y(1)+10*y(3));

%yprim(1)=y(2);%yprim(2)=1/0.3*(-y(2)+y(3)); %functie ce descrie un oscilator care se comporta haotic in absenta comenzii

%yprim(1)=y(2);%yprim(2)=-0.1*y(2)-y(1)^3+12*cos(t)+y(3);yprim(3)=0;

Page 57: Retele Neuronale Si Logica Fuzzy in Automatizari

Reţele Neuronale şi Logica Fuzzy în Automatizări Control Inteligent şi Adaptiv

CUPRINSPrefaţă...............................................................................................................................................................Capitolul 1: Modele fuzzy................................................................................................................................Capitolul 2: Control fuzzy adaptiv indirect pentru sisteme neliniare...............................................................

2.1 Control fuzzy adaptiv..............................................................................................................................2.1 Sinteza sistemelor fuzzy de control adaptiv indirect pe baza teoriei stabilităţii a lui Lyapunov............2.3 Etapele în proiectarea unui sistem fuzzy adaptiv indirect folosind primul tip de model fuzzy..............2.4 Etapele în proiectarea unui sistem fuzzy adaptiv indirect folosind al doilea tip de model fuzzy...........

Capitolul 3: Control fuzzy adaptiv direct.........................................................................................................3.1 Sinteza sistemelor fuzzy de control fuzzy adaptiv direct pe baza teoriei stabilităţii a lui Lyapunov......3.2 Etapele în proiectarea unui sistem fuzzy adaptiv direct folosind primul tip de model fuzzy.................3.3 Etapele în proiectarea unui sistem de control fuzzy adaptiv direct folosind al doilea tip de model fuzzy..............................................................................................................................................................

Capitolul 4: Simulări algoritmi.........................................................................................................................4.1 Aplicaţie: Sistem de urmărire traiectorie pentru pendulul invers............................................................4.2 Aplicaţie pentru un sistem liniar..............................................................................................................4.3: Programe de simulare folosite................................................................................................................

CUPRINS..........................................................................................................................................................