Sunteți pe pagina 1din 58

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

Prefa

n proiectarea sistemelor de reglare automat, un algoritm competitiv ar trebui s valorifice


orice fel de informaie legat de procesul supus automatizrii. Pentru o larg categorie de
probleme, o bun parte din informaie este deinut de expertul uman. Aceast informaie de
obicei nu este o informaie exact, pentru descrierea acesteia dezvoltndu-se teoria sistemelor cu
procesare fuzzy a informaiei. Apare astfel necesar ncorporarea informaie lingvistice de la
expertul uman ntr-o manier sistemic astfel nct asupra sistemului rezultat s poat fi analizat
din punct de vedere al performanelor, stabilitii, etc.
O alt parte a informaiei este informaia numeric obinut de la senzori sau conform cu legile
fizice care descriu procesul. ntre aceste dou tipuri de informaie exist mari diferene. astfel
informaie numeric este supus legilor fizicii sau axiomelor matematicii, inexistente pentru
informaia lingvistic. Altfel spus legile care guverneaz informaia lingvistic sunt fundamental
diferite de legile care guverneaz informaia numeric. Exist dou lumi: lumea fizic i lumea
uman, i cum interaciunea om-main este n continu cretere tot mai multe sisteme inginereti
aparin interseciei acestor dou lumi. Scopul sistemelor adaptive fuzzy va fi tocmai modelarea
acestei informaii 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-ieire obinute prin msurtori efectuate pe proces.
Conceptual sistemele fuzzy adaptive combin informaia lingvistic cu informaia numeric astfel:
deoarece sistemul fuzzy e constituit n principiu dintr-un set de reguli if-then, informaia
lingvistic va fi direct ncorporat n baza de reguli; pe de alt parte informaia numeric coninut
de perechile de intrare-ieire este ncorporat antrennd sistemul conform datelor msurate de la
proces, conform algoritmului de antrenare. Sistemul adaptiv fuzzy poate fi vzut ca un sistem
logic fuzzy ale crui 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 informaiei, lucru care le justific denumirea de sisteme
adaptive fuzzy, ns la acelai formalism matematic se poate ajunge abordnd problema din
punctul de vedere al reelelor neuronale sau al metodelor de interpolare.
Autorii.

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

.1 Modele fuzzy
Principial, n literatura de specialitate se consider pentru un sistem cu procesarea fuzzy a
informaiei urmtoarea structur:

Figura 1.1
Un sistem fuzzy logic fuzzy caracterizat prin: fuzzificarea intrrilor reale X U R n n mulimi
fuzzy singleton; printr-un algoritm de inferen de tip produs; i defuzzificare prin metoda sumei
ponderate a centrelor mulimilor fuzzy ale consecinelor conduce n final la urmtoarea form
sistemic pentru sistemul cu procesare fuzzy a informaiei:
n

fX

l 1
M

y l F l xi
i

i 1
n

(1.1)

x
Fil

l 1 i 1

Referitor la notaiile folosite se fac urmtoarele precizri:


x1

X ... U R n ,
x
n

(1.2)

reprezint setul de semnale de intrare reale. Dac se consider regulile IF-THEN de forma:
IF x1 is F1l and . . . and Fnl THEN y is G l cu l 1, M ,
(1.3)
unde M=numrul de reguli, F ( xi ) va reprezenta funcia de apartenen asociat mulimii fuzzy
Fi l ce descrie o variabil lingvistic, y l va fi centrul mulimii fuzzy G l , adic punctul n care
funcia de apartenen atinge valoarea maxim 1. n baza ipotezelor fcute se poate demonstra pe
baza formalismului matematic formula (1.1):
fuzzificarea singleton conduce la urmtoarea mulime fuzzy:
i

1, X X
0, X X

A X X

(1.4)

rezultatul activrii regulii l l constituie mulimea fuzzy B l calculat conform urmtoarei reguli de
compunere:

Bl y l sup X U F l ... F l G l X , y * A X
n
1

(1.5)

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

care constituie de fapt exprimarea analitic a regulii de deducie modus ponens. Apoi definim
implicaia ca produs:
l
l
F ... F G X , y F ... F X G y
(1.6)
l
1

l
n

l
1

l
n

definim produsul cartezian ca produs:


n

l
1

... Fnl

X F xi

n final rezult concluzia fuzzy considernd


apartenen:

T-norma * ca i produs pentru funciile de

Fil

i 1

(1.7)

B y sup X U
l

i 1

Gl

y X
l

(1.8)

Ca rezultat al activrii celor M reguli se obin M mulimi fuzzy caracterizate prin funciile de
l
apartenen: B y . Mulimea fuzzy B care exprim concluzia final va fi reuniunea celor M
mulimi fuzzy:
l

(1.9)

B B l
l 1

cu funcia de apartenen calculat ca o sum de T-conorme:

B y B1 y . . BM y

pentru T-conorm alegndu-se operaia de nsumare. Revenind la relaia (1.8) cum


conform cu relaia (1.4) rezult supremul astfel:

Bl y F l xi
l

1 i

G y
l

(1.11)

i 1

(1.10)

procedura de defuzzificare se consider a fi media ponderat a centrelor mulimilor fuzzy ale


consecinelor regulilor de deducie:
M

y
l

y
y
l

Bl

l 1
M

l 1

(1.12)

Bl

unde innd cont de relaia (1.11) obinem relaia de pornire (1.1).


Observaie: Dac n loc de produs pentru definirea T-normei s-ar fi utilizat minimizarea ar fi
rezultat urmtoarea relaie care descrie global un sistem fuzzy:
M

l 1
M

min F l x1 ,..., F l xn
1

min x ,..., x
l 1

F1l

Fnl

(1.13)

Pentru dezvoltarea algoritmilor de antrenare trebuie specificat forma funciei de apartenen, care
poate fi aleas triunghiular, trapezoidal, etc. n cazul studiat n cele ce urmeaz se va alege o
funcie de apartenen Gaussian de forma:

xi x li

F l xi exp
i
i

sistemul (1.1) putnd fi pus sub forma:

(1.14)

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

xi x li

y exp

i 1
l 1

f X
x x l 2
M
n
i

exp i

l 1 i 1

i

M

(1.15)

Pentru forma sistemului fuzzy (1.15) informaia lingvistic poate fi ncorporat iniial n setul de
l
l
reguli IF-THEN, iar n algoritmul de ajustare (antrenare) a parametrilor sistemului y , x i , i se
ncorporeaz informaia numeric.
Urmtoarea teorem justific folosirea formei (1.15) pentru modelarea oricror procese neliniare
cu orice grad de precizie impus:
Teorema universal de aproximare : Oricare ar fi funcia real continu g:U V , U R n
mulime compact i oricare ar fi 0 , real, exist sistemul fuzzy (1.13) astfel nct:

f X g X

(1.16)

Demonstraia se poate studia n [1]. Forma (1.15) a unui sistem fuzzy se poate interpreta astfel:
Se consider baza de funcii radiale:

xi x li

exp

i 1

pj X
x x l
M
n
i

exp i

l 1 i 1

i

n

j=1..M

(1.17)

Atunci sistemul (1.13) va fi echivalent cu urmtoarea form:


M

f X j p j X

(1.18)

j 1

unde j y . Avnd n vedere teorema de universal de aproximare se deduce c oricare funcie


neliniar poate fi descompus n serie de funcii radiale conform relaiei (1.18), ordinul M al
dezvoltrii n cazul de fa interpretndu-se ca i numrul de reguli din baza de reguli.
n ceea ce privete parametrii ajustabili ai modelului fuzzy, acestea se mpart n dou tipuri i
anume:
primul tip de model fuzzy pentru se folosete modelul (1.18), rezultnd un algoritm liniar de
ajustare a parametrilor;
al doilea tip de model fuzzy pentru care se folosete modelul (1.15) , parametrii care se
l
l
ajusteaz fiind y , x i , il , 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 situaia existenei incertitudinilor sau
a variaiilor mari de parametri sau structur ale procesului de condus. n aceste condiii de
incertitudine se cere sistemului de control meninerea performanelor impuse. Pe de alt parte se
impune adaptarea parametrilor sistemului de control deoarece setul de reguli provenite de la
expertul uman dei conin foarte mult informaie calitativ aceasta nu este ntotdeauna suficient.

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

Se impune astfel un mecanism de ajusta, eventual de a aduga noi reguli n scopul realizrii unui
sistem de control ct 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 urmrire 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
estimai "on-line". Astfel sistemele fuzzy de control adaptiv directe folosesc ca i regulator un
sistem fuzzy, astfel c informaia 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 folosete 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 stabilitii a
lui Lyapunov
Se consider sistemul neliniar de ordinul n n forma normal:
x 1 x2
x 2 x3

...........
x n f x1 ,..., xn g x1 ,..., xn u

(2.1)

y x1

sau forma echivalent:

x n f x,..., x n 1 g x,..., x n 1 u
y x

(2.2)

cu f, g funcii continue, u, y R reprezint intrarea, respectiv ieirea din sistem, iar X x1 ,..., x n
constituie vectorul de stare care poate fi msurat. Pentru ca sistemul (2.2) s fie un sistem controlabil se
impune ca g X 0 ntr-o regiune de controlabilitate U C R n . Fr a pierde din generalitate se presupune
c g X 0 pentru X U C .
Obiectivul sistemului de control pentru acest sistem l va constitui urmrirea unui semnal de referin
mrginit y m t de ctre ieirea procesului y astfel nct toate semnalele implicate s fie mrginite. Deci se
cere determinarea semnalului de control u u X , i a unei legi de adaptare a parametrilor astfel
nct sistemul nchis s fie global stabil n sensul c toate variabilele X t , t , u X , s fie uniform
mrginite:
X t M X , t M , u X , M u oricare ar fi t 0
unde M X , M , M u sunt parametrii stabilii de proiectant. Eroarea de urmrire e y m y se impune ca
s fie ct mai mic posibil cu ndeplinirea obiectivelor anterioare.
T
T
S considerm atunci vectorul e e, e , e,..., e n 1 i k k1 , k 2 ,..., k n R n astfel nct toate
T

rdcinile polinomului h s s n k1s n 1 ... kn s se gseasc n semiplanul stng al planului complex.


Dac funciile f, respectiv g sunt cunoscute atunci legea de control:
u

care se aplicat n (2.2) implic:

1
T
f X y m n k e
g X

e n k1e n 1 ... k n e 0

(2.3)
(2.4)

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

e t 0 . Dar forma funciilor f, g nefiind cunoscut, conform


conform ipotezelor fcute. Astfel lim
t
teoremei universale de aproximare le nlocuim cu modelele fuzzy f X / , respectiv
cu cele prezentate n primul capitol. Rezult urmtoarea lege de control:
uc

1
T
f X / y m n k e
g X /

X /
g

conform

(2.5)

Prin aplicarea acestei legi de control n sistemul (2.2) i o serie de artificii de calcul se obine ecuaia care
descrie dinamica erorii de urmrire a traiectoriei impuse:
e n k T e f X / f f X g X / g g X u c
(2.6)
sau echivalentul cu variabile de faz:
(2.7)
e C e b C f X / f f X g X / g g X u c

unde:

...

...

0
0

...

...

...

...

...

...

...

...

kn 1

...

...

...

1
k1

kn

...
n

0
...
, respectiv bC
0

1

(2.8)

n 1

... kn este stabil. Exist atunci o matrice


Se observ c polinomul caracteristic sI C s k1s
unic P pozitiv definit, simetric nxn care satisface ecuaia Lyapunov:
TC P P C Q
(2.9)
unde Q este o matrice arbitrar aleas n n pozitiv definit. S construim atunci funcia Lyapunov care

descrie comportamentul energetic al sistemului: Ve

1 T
e P e , a crei derivat se calculeaz utiliznd
2

ecuaia erorii (2.7):


1 T
1 T
Ve e Pe e P e
2
2
(2.9)
1 T
T

e Q e e Pb C f X / f f X g X / g g X u C
2

Conform teoriei Lyapunov pentru ca xi ym i 1 e i 1 s fie mrginit, ( adic e s fie mrginit ntruct y m
este mrginit prin proiectare ) se impune ca Ve ( energia sistemului erorii ) s fie mrginit, ceea ce
implic Ve 0 cnd Ve V impus prin proiectare. Din ecuaia (2.8) se observ c este destul de dificil
de a gsi comanda uC care fac termenul al doilea din membrul drept al relaiei (2.8) s devin foarte
apropiat de zero. Problema se rezolv prin introducerea n componena semnalului de comand a unei aa
numite comenzi supervizoare uS , astfel c semnalul de comand final va fi:
u uC uS
(2.10)
Scopul acesteia va fi de a fora Ve 0 cnd Ve V . Noul semnal de comand introducndu-l n sistemul
(2.2), i utiliznd aceleai artificii de calcul ca i n cazul obinerii relaiei (2.7) conduce la noua form
pentru ecuaia care descrie dinamica erorii:

e C e b C f X / f f X g X / g g X u c g X u S

Recalculm din nou prima variaie a funciei Lyapunov conform cu noua ecuaie (2.10):

1 T
T
Ve e Qe e Pb C f X / f f X g X / g g X u C g X u S
2
1 T
T
T
e Qe e Pb C f X / f f X g X / g u C g X u C e Pb C g X u S
2

(2.11)

(2.12)

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

Pentru a proiecta uS astfel nct membrul drept al relaiei (2.11) s fie negativ se presupune c se pot
determina funciile f U X , gU X , g L X astfel nct: f X f U X , respectiv gL X g X gU X
U
U
pentru X R n , cu f X , g X , g L X 0 .
Pe baza marginilor funciilor f, respectiv g alegem comanda supervizoare de forma:

g 1 X f X /

u S I1* sgn e Pb C

f U X g X / g uC g U X u C

1, Ve V

(2.13)

1, y 0

, sgn y 1, y 0 .

0, Ve V
Introducnd (2.13) n (2.12) i considernd cazul Ve V , rezult:
unde I1*

1 T
T
Ve e Q e e Pb C f f gu C gu C
2
g
1 t

f f U gu C g U u C e Q e 0
gL
2

(2.14)

Legea de adaptare a parametrilor:


Se definesc:

*f min sup f X / f f X

f

X U C

unde

(2.15)

*g min sup g X / g g X

, cu

f f / f M f , 0
l
i

X U C

Mf ,

constante de proiectare. Dac se folosete primul tip de

model fuzzy , se ignor ( prin acesta se impune ca il implicate n definirea funciilor de apartenen s
fie pozitive i s nu existe puncte necuprinse n nici o partiie fuzzy).
l
g g / g M g , y 0, il 0 (2.16), semnificaia constantelor fiind aceeai cu precizarea c
l

restricia y s-a introdus pentru a impune


Se definete eroarea minim de aproximare:

g X / g

pozitiv conform ipotezelor preliminare.

w f X / *f f X g X / *g g X uC

Rescriem atunci ecuaia erorii (2.10):

(2.17)

e C e bC f X / f f X / *f g X / g g X / *g uC w

(2.18)

Dac alegem pentru modelele fuzzy prima form pentru care se realizeaz ajustarea numai a centrelor
l
consecinelor y a regulilor i tratnd modelul ca pe o serie de funcii radiale X relaia (2.18) se
rescrie:
e C e bC g X uS bC w bC tf X tg X uC
(2.19)
*
unde f , g f , g f , g . Considerm funcia Lyapunov:

1 t
1
1
e Pe
tf f
t
2
2 1
2 2 g g

(2.20)

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

1
1
1
V et Qe g X et PbC uS et PbC w tf f 1 et PbC X tg g 2 et PbC X uC
2
1
2

(2.21)

utilizndu-se ecuaia Lyapunov (2.9) i


f , g f , g . Conform relaiei (2.12) prin care s-a introdus
t
comanda supervizoare i cum g X 0 pe domeniul de controlabilitate U C rezult g X e PbC uS 0 .
Alegnd apoi urmtoarea lege de adaptare a parametrilor:

Reele Neuronale i Logica Fuzzy n Automatizri


f 1 et PbC X

Control Inteligent i Adaptiv

(2.22)

g 2 et PbC X uC

atunci (2.21) devine:


1
V et Qe et PbC w
2

(2.23)

Se observ c relaia 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 funciilor de apartenen gaussiene se parcurg aceleai etape cu
remarca c iniial se face aproximarea modelelor f , g printr-o descompunere n serie Taylor n jurul
*
*
valorilor parametrilor f , g care asigur eroarea de aproximare minim:

g X / g g X / *g

f X /
2
f
O f

f X / f f X / *f tf

(2.24)

g X /
2
g
tg
O g

Fcnd substituia n relaia (2.18) rezult ecuaia care modeleaz dinamica erorii de urmrire:

f X / f
g X / g
e C e bC g X uS bC v bC tf
tg
uC

f
g

(2.25)

unde:
v w O f

O g

(2.26)
Apare urmtoarea problem i anume meninerea parametrilor f , g n interiorul domeniului f , g .
Pentru aceasta se utilizeaz algoritmul vectorului de gradient proiectat, domeniile f , g fiind vzute ca
nite restricii. Astfel dac parametrii care se ajusteaz sunt n interiorul domeniului se utilizeaz legea de
ajustare (2.22). Dac s-a ajuns pe grania domeniului i tendina parametrilor este de a prsi domeniul,
ajustm parametrii pe direcia proieciei gradientului conform relaiei (2.22) pe limita domeniului n
punctul unde ne aflm:

Schematic algoritmul poate fi reprezentat:

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

Valorile iniiale ale parametrilor se stabilesc pe baza informaiilor lingvistice existente. Dac nu exist
informaii lingvistice se stabilesc arbitrar cu respectarea restriciilor impuse.

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

2.3 Etapele n proiectarea unui sistem fuzzy adaptiv indirect folosind primul tip de model
fuzzy
Calcule off-line
alege k1 , k2 ,..., kn astfel nct toate rdcinile polinomului s n k1s n1 ... kn 0 s fie n
semiplanul stng al planului complex.
se alege o matrice Q nxn pozitiv definit i se rezolv ecuaia Lyapunov tC P P C Q unde

...

...

0
0

...

...

...

...

...

...

...

...

kn 1

...

...

...

...

1
k1

kn

se dau parametrii

M f , M g , ,V

0
...
, respectiv bC
0

1

bazndu-ne pe cunotine practice asupra procesului

Construirea unui controller iniial


se definesc mi mulimi fuzzy Fi li ale premizelor regulilor de deducie ale cror funcii de
apartenen acoper uniform U Ci proiecia domeniului pentru variabilele de intrare pe
coordonata a i-a, unde li 1, mi i i 1, n , n fiind numrul de intrri.
se construiete baza de reguli pentru modelele fuzzy f X , f , g X , g , fiecare avnd
m1 m2 ... mn reguli ale cror premize cuprinde toate combinaiile posibile ale mulimilor
fuzzy Fi li pentru
l1 ,...,ln

Rf

i 1, n .

Regulile sunt de forma:

isG
X , isH
, THENg

: IFx1isF and ... andx n isFnln , THENf X ,


l1
1

Rg l1 ,...,ln : IFx1isF1l1 and ... andx n isFnln

l 1,...,l n
l 1,...,l n

Mulimile fuzzy i

regulile fuzzy nglobeaz cunotinele lingvistice despre proces dac ele exist, n caz contrar se
iau arbitrar lsnd pe seama algoritmului de antrenare ajustarea acestora.
n

se construiesc funciile radiale de baz:

l1 ,...,ln

x
i

m1

i 1
mn

l1 1

ln

Fi i

... x
l

Fi i

i 1

ordinea natural pentru l1 1, m1 ,..., ln 1, mn n vectorul X ,

i se ordoneaz n

m - dimensional. Se
i 1

construiesc vectorii parametrilor ajustabili f 0 , respectiv g 0 ca i argumentele funciilor

l1 ,..., l n

, respectiv H l1 ,...,l n n care aceasta ating valoarea maxim adic 1. rezult atunci

modelele fuzzy ca i serii de funcii radiale :

X
g X , X
f X , f

t
f

t
g

Adaptarea on-line
1
n
t
se aplic procesului comanda u uC uS unde uc g X / f X / y m k e i

uS I1* sgn e t Pb C

1
f X / f f U X g X / g uC g U X uC
gL X

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

1, Ve V
1, y 0
, sgn y 1, y 0 .

0, Ve V
vectorul parametrilor f se ajusteaz conform urmtorului algoritm
*
unde: I1

1 e PbC X dac f M f sau

P 1 e t PbC X dac f

M si e t Pb t X 0
f
C
f
f

M f si e t PbC tf X < 0

t
t
t
proiecie se definete: P 1 e PbC X 1 e PbC X 1 e PbC

unde operatorul de

f tf X
f

vectorul parametrilor g se ajusteaz conform urmtorului algoritm:


oricnd un element gi se utilizeaz

2 et PbCi X u C dac et PbCi X u C 0

gi 0 dac et Pb i X u C 0
C

altfel se utilizeaz:

t
2 e PbC X u C

dac g M g sau g M g si et PbC tg X uC 0


P 2 et PbC X uC dac g M g si e t PbC tg X u C < 0

operatorul de proiecie se definete analog:

P 2 e t PbC X uC 2 et PbC X uC 2 et PbC

g tg X
g

unde

uC

Proprietile controllerului astfel construit sunt cuprinse n urmtoarea teorem:


Teorem: Sunt garantate urmtoarele proprieti pentru algoritmul de control adaptiv indirect cu primul
tip de model fuzzy:
1. M , M i toate elementele vectorului g sunt mai mari dect ,
f

2.
3.

2V

X t Y m

1
2

min

u t

2V

M f ym k

min

t 0 , unde

min

4.

1
2

1
1

Mf f U X
M g gU

gL X

5. Dac

w
0

M f ym k

2V
min

1
2

t 0 , cu a, b constante i w eroarea minim de aproximare

definit de (2.17).
t

este cea mai mic valoare proprie a matricii P i Y m ym , y m ,..., ym n 1

e d a b w d ,
0

e t 0
d atunci lim
t

Demonstraia teoremei se gsete n [1].

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

2.4 Etapele n proiectarea unui sistem fuzzy adaptiv indirect folosind al doilea tip de
model fuzzy
Calcule off-line analoage
Construirea unui controller iniial
M

exp

l 1

i 1

i 1

exp
l

x i x lfi

fi

x i x lfi

exp

l i 1

fi

M

y exp

g X / g

i 1

l
fi , gi

l 1

Se consider modele fuzzy de tipul al doilea de forma:

yf

f X / f

x i x

gil

l
gi

x i x lgi

gi

unde

constituie vectorul parametrilor ajustabili. Deci se va considera pentru fiecare


model fuzzy o baz de M reguli, n care sunt ncorporate dac exist cunotine iniiale despre proces.
Vectorul iniial al parametrilor ajustabili f , g 0 se alege conform cunotinelor lingvistice disponibile,
restul de parametrii despre care nu cunoatem nimic se aleg arbitrar.
Adaptarea on-line a parametrilor
f , g y f , g ... x

... lfi , gi

se calculeaz
f
l

yf

l
fi

conform urmtorului algoritm:

blf
M

b
l 1

f X , f

l
f

l
y f f
M

blf
l 1

l
f


l
fi

2 xi x fi
2

y f f l 2 xi x fi
f

bf
M
3
fil
l
lfi
bf
l 1

x x lfi
unde b exp i l
fi
i 1

l
f

, relaiile fiind deduse prin

efectuarea derivrii corespunztoare asupra modelului. Pentru g derivata se calculeaz identic,


schimbnd f cu g n relaiile de mai sus.
1
n
t
se aplic procesului comanda u uC uS unde uc g X / f X / y m k e i

uS I1* sgn e t Pb C

1, Ve V

1, y 0

, sgn y 1, y 0 .

0, Ve V

unde: I1*

1
f X / f f U X g X / g uC g U X uC
gL X

(2.12)

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

vectorul parametrilor f se ajusteaz conform urmtorului algoritm:

oricnd un element fi
l

f
f
t
1 e PbC l dac e PbC l 0
fi
fi

l
se utilizeaz fi
f
t
0 dac e PbC l 0
fi

altfel se utilizeaz:

f
dac f M f sau f M f si et PbC tf
0
f

f
f

t
t
t

e
Pb
dac

M
si
e
Pb

<
0

1
f
f
C
C f

f
f

g tg f
f
f
t
t
t
1 e PbC
1 e PbC
1 e PbC
2
f
f
g f
1 et PbC

f
f

vectorul parametrilor g se ajusteaz conform urmtorului algoritm:

g
g
t
t

e
Pb
u
dac
e
Pb
l uC 0
C
2 C yl C

y
g
g

oricnd un element

y lg

se utilizeaz

y g
l

g
t
0
dac
e
Pb
u 0
C

yl C

g
g
t
t

e
Pb
u
dac
e
Pb
l uC 0
C
2 C l C

gi
gi

l
oricnd un element gi se utilizeaz


l
gi

g
t
0
dac
e
Pb
u 0
C

l C

altfel se utilizeaz:

gi

g
g
u C dac g M g sau g M g si e t PbC tg
u C 0
g
g

g
g

2 e t PbC
u C dac g M g si e t PbC tg
u C < 0
g
g

2 e t PbC

g g g
g
g
P 2 e PbC
u C 2 et PbC
u C 2 e t PbC
uC
2
g
g

g g
t

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

Proprietile algoritmului sunt identice ca i n cazul folosirii primului tip de model cu modificarea lui w
cu v n relaia mrginirii erorii. Algoritmul va asigura o eroare de aproximare minim mai bun deoarece
spaiul unde se caut parametrii este mai mare. Sensibilitatea performanelor la alegerea valorilor iniiale
ale parametrilor va fi mai mare.
Observaie: De obicei forma general a sistemelor neliniare este:

X F X , u

y h X

. Pentru a putea aplica

algoritmul expus este necesar gsirea unei relaii directe ntre ieirea sistemului y i intrarea u. Aceasta
se realizeaz printr-un algoritm de liniarizare care const n diferenierea repetat a ieirii y pn cnd
apare intrarea u, apoi se proiecteaz legea de comand u astfel nct s neliniaritatea s dispar,
rezultnd n final o lege de comand liniar. Presupunnd c dup r diferenieri repetate apare intrarea
u, r n unde n dimensiunea vectorului variabilelor de stare X se va numi gradul relativ al sistemului:
y r f X g X u . Se poate arta c pentru orice sistem controlabil de ordinul n, dup cel mult n
diferenieri succesive va aprea intrarea u. n continuare se aplic algoritmul prezentat anterior, cu
excepia c nu va mai exista o comand supervizoare, necunoscnd funciile f, g fiind total necunoscute.

Capitolul 3: Control fuzzy adaptiv direct


3.1 Sinteza sistemelor fuzzy de control fuzzy adaptiv direct pe baza teoriei stabilitii a
lui Lyapunov
Se consider c procesul poate este descris de urmtorul sistem de ecuaii difereniale:
x n f x , x ,..., x n 1 bu

(3.1)

yx

unde f constituie funcia necunoscut, b este o constant pozitiv , u R este semnalul de comand i y
t
este ieirea din proces. Presupunem c vectorul variabilelor de stare X x , x ,..., x n 1 este accesibil
msurtorilor. Obiectivele de control vor fi aceleai, cu deosebirea c semnalul de comand uC X / se
consider a fi un sistem fuzzy.
Presupunem c semnalul de control are forma: u uC X / uS X
(3.2)
n
Prin nlocuire n (3.1) rezult: x f X b uC X / uS X
(3.3)
Dac f i b sunt cunoscute atunci legea de comand: u*

1
f ym n k t e
b

(3.4) va

fora eroarea de urmrire e s convearg spre 0, unde e e, e,..., e n 1 i k kn , kn 1 ,..., k1 astfel


t

ales astfel nct rdcinile polinomului h s s n k1s n 1 ... kn s de gseasc n semiplanul stng al
planului complex. n ecuaia (3.3) adugm i scdem bu* , rezultnd dup cteva artificii de calcul
ecuaia erorii care guverneaz comportamentul sistemului nchis:
e n k t e b u* uC X / uS X
(3.5) sau
echivalentul acesteia cu variabile de faz: e C e bC u* uC X / uS X

(3.6) unde

Reele Neuronale i Logica Fuzzy n Automatizri

...

...

...

k n 1

0
kn

Control Inteligent i Adaptiv

0
0

0
0


. , bC 0


1
...

b
k1

(3.7)
Asociem acestei ecuaii funcia Lyapunov Ve

1 t
e Pe unde P este o matrice simetric pozitiv definit,
2

soluie s ecuaie Lyapunov: C t P P C Q


cu Q>0. Calculm derivata funciei Lyapunov:

(3.8)

1
1
(3.9).
Ve et Qe et PbC u* uC X / uS X et Qe e t PbC u* uC et PbC uS
2
2
Pentru a gsi o comand supervizoare uS astfel nct Ve 0 se consider c se poate determina o funcie

f U X

i o constant bL astfel nct:


conform cu urmtoarea relaie:

f X f U X

i 0 bL b . Comanda supervizoare se va construi

1
uS X I1* sgn et PbC uC
f U ym n k t e
bL

(3.10)

unde semnificaia constantelor este aceai. n cazul n care I1* 1 ( Ve V ) rezult prin nlocuire n (3.9):
1

1
1
1
Ve et Qe et PbC
f y m n k t e uC uC
f U y m n k t e et Qe 0
2
bL
2
b

(3.11)

Cum P>0 mrginirea lui Ve implic mrginirea lui e care va implica mrginirea lui X .
n continuare se va considera pentru uC X / 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:

* arg min sup uC X / u*


M

eroarea minim de aproximare: w uC X / u*


erori de reglare se rescrie:

(3.12) i

X Mx

(3.13). Ecuaia (3.6) care descrie comportamentul

e C e bC u* uC X / bC uS X bC w

Alegnd

uC X / X

i notnd

e C e bC X bC uS X bC w

* ,

(3.14)
ecuaia (3.14) devine:

(3.15)
1

t
t
Redefinim atunci funcia Lyapunov : V 2 e Pe 2 (3.14) a crei derivat va fi:

1
b

V et Qe et PbC t X uS w t
2

(3.16)

Fie pn ultima coloan a matricii P astfel c: et PbC et pn b


(3.17)

1 t
b t
t
et Pb u et Pb w
nlocuind (3.17) n (3.16) rezult: V 2 e Qe e pn X
C S
C
, alegnd legea de ajustare: e t p X
Cum
n
atunci relaia (3.18) devine:

1
V et Qe et PbC w
2

(3.18)
(3.19)
(3.20)

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

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

uC
2
O

caz pentru care ecuaia erorii de urmrire devine:


u
e C e bC t C bC uS X bC v

2
(3.22) unde v w O , algoritmul de calcul fiind n continuare analog.
Schema general va fi analoag cu cea prezentat n capitolul 2.
uC X / * uC X / t

(3.21)

3.2 Etapele n proiectarea unui sistem fuzzy adaptiv direct folosind primul tip de model
fuzzy
Calcule off-line
alege k1 , k2 ,..., kn astfel nct toate rdcinile polinomului s n k1s n1 ... kn 0 s fie n
semiplanul stng al planului complex.
se alege o matrice Q nxn pozitiv definit i se rezolv ecuaia Lyapunov tC P P C Q unde

...

...

0
0

...

...

...

...

...

...

...

...

kn 1

...

...

...

...

1
k1

kn

se dau parametrii

0
...
b

, respectiv C
0

1

M , M x ,V bazndu-ne pe cunotine practice asupra procesului

Construirea unui controller iniial


se definesc mi mulimi fuzzy Fi li ale premizelor regulilor de deducie ale cror funcii de
apartenen acoper uniform U Ci proiecia domeniului pentru variabilele de intrare pe
coordonata a i-a, unde li 1, mi i i 1, n , n fiind numrul de intrri.
se construiete baza de reguli pentru modelele fuzzy f X , f , avnd m1 m2 ... mn reguli
ale cror premize cuprinde toate combinaiile posibile ale mulimilor fuzzy Fi li pentru

i 1, n .

l ,...,l
: IFx1isF1l and ... andx n isFnln , THENf X , f isG l1,...,l
Regulile sunt de forma: R f
Mulimile fuzzy i regulile fuzzy nglobeaz cunotinele lingvistice despre proces dac ele
exist, n caz contrar se iau arbitrar lsnd pe seama algoritmului de antrenare ajustarea
acestora.
1

se construiesc funciile radiale de baz:

l1 ,...,ln

x
l

m1

i 1
mn

l1 1

ln

Fi i

... x
l

ordinea natural pentru l1 1, m1 ,..., ln 1, mn n vectorul

i 1

Fi i

i se ordoneaz n

m - dimensional. Se
i 1

construiesc vectorii parametrilor ajustabili f 0 ca i argumentele funciilor G l1 ,..., ln n care


aceasta ating valoarea maxim adic 1. Rezult atunci modelul fuzzy al controllerului ca i serii
t
de funcii radiale : uC X , f f X

Adaptarea on-line

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

se aplic procesului comanda u uC uS unde

1
uS I1* sgn e t Pb C uC
f U X y m n k t e
bL

1, Ve V
1, y 0
*
unde: I1
, sgn y 1, y 0 .

0, Ve V
vectorul parametrilor f se ajusteaz conform urmtorului algoritm

e t p X dac M sau
n

f
t

P e pn X dac f

M si e t p t X 0

n
f
f

t
t

M si e pn f X < 0

proiecie se definete: P e pn X e pn X e pn
t

unde operatorul de

f tf X
f

Proprietile controllerului astfel construit sunt cuprinse n urmtoarea teorem:


Teorem: Sunt garantate urmtoarele proprieti pentru algoritmul de control adaptiv indirect cu primul
tip de model fuzzy:
1. M
f

2V

1
2

2.

X t Y m

3.

2V
1
n
u t 2 M
f U ym
k

bL
min

min

1
2

t 0 , unde

proprie a matricii P i Y m ym , y m ,..., ym n 1


t

4.

d a b w d ,

5. Dac

w
0

min

este cea mai mic valoare

t 0 , cu a, b constante i w eroarea minim de aproximare.

e t 0
d atunci lim
t

Demonstraia teoremei se gsete n [1].

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 funciilor
de apartenen
Construirea unui controller iniial
Se consider modele fuzzy de tipul al doilea de forma:
2
l
n

M

l
x

x
fi
exp i l
y f
fi
i 1
l 1


l
l

unde f y f ... x fi ... fiil constituie vectorul


uC X / f
2
l

M n
xi x fi

exp
l
lfi
i 1

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

parametrilor ajustabili. Deci se va considera pentru modelul fuzzy al controllerului o baz de M


reguli, n care sunt ncorporate dac exist cunotine iniiale despre proces. Vectorul iniial al
parametrilor ajustabili f 0 se alege conform cunotinelor lingvistice disponibile, restul de
parametrii despre care nu cunoatem nimic se aleg arbitrar.
Adaptarea on-line a parametrilor

uC X , f

se calculeaz

conform urmtorului algoritm:

blf
uC

l
M
yf
blf
l 1

l
l
uC y f f l 2 xi x fi
bf
l
M
2
l
x fi
l

fi
b
f
l 1

uC y f f l 2 xi x fi
M
bf
3
lfi
l
lfi
bf
l 1

x x lfi
unde b exp i l
fi
i 1

l
f

, relaiile fiind deduse prin

efectuarea derivrii corespunztoare asupra modelului.


se aplic procesului comanda u uC uS unde

1
uS I1* sgn e t Pb C uC
f U X y m n k t e
bL

1, Ve V
1, y 0
*
unde: I1
, sgn y 1, y 0 .

0, Ve V
vectorul parametrilor f se ajusteaz conform urmtorului algoritm:

et pn
l
oricnd un element fi se utilizeaz


l
fi

uC
t uC
dac
e
pn l 0
lfi
fi

uC
0 dac e pn l 0
fi
t

altfel se utilizeaz:

et p X
n

dac f M sau
P e t pn X dac f

M si e t p t X 0

n
f
f

t
t

M si e pn f X < 0

unde operatorul de proiecie se definete:

P e pn X e pn X e pn
t

f tf X
f

Algoritmul garanteaz aceleai proprieti, conform teoremei enunate n (3.2).

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

Capitolul 4: Simulri algoritmi

4.1 Aplicaie: Sistem de urmrire traiectorie pentru pendulul invers


Se consider urmtorul sistem, denumit pendulul invers pentru care se va construi un controller fuzzy pe
baza algoritmilor enunai anterior cu scopul de a urmri o traiectorie impus.

x 1 x2
x 2

mlx22 cos x1 sin x1


cos x1
mc m
mc m

u
2
4 m cos 2 x1
4 m cos x1

l
3
mc m
mc m
3

g sin x1

g 9.8 m / s2 acceleratia gravitational


m = 0.1 Kg masa axului mobil
m C 1 Kg
masa cruciorului
l = 0.5 m
semi - lungimea axului mobil

sin t , respectiv treapta y m


Ca i referin se alege ym
. Algoritmul necesit nite date preliminare
30
30

privind restriciile: f U , gU , g L :
f x1 , x2

g x1 , x2

mlx22 cos x1 sin x1


0.025 2
9.8
x2
mC m
11
.

15.78 0.0366 x22 f U x1 , x2


2 0.05
4 m cos2 x1

3 11
.
3 mC m

g sin x1

1
1
mC m

146
. gU x1 , x2
2
4 m cos x1
2 0.05
11
.

3 11
.
3 mC m
cos x1

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

Unghiului fcut de ax cu pol I se alege domeniul: x1


g x1 , x2

112
. g L x1 , x2
2 0.05
2
11
.
cos

3 11
.
6

, rezultnd imediat:
6

cos

Forei u care acioneaz asupra cruciorului i impunem: u 180 . Cum


face X

x1

x2

2 1/ 2

dac putem

atunci i x1
. De asemenea o s avem x2 . Parametrii V , k1 , k2 , , M f , M g astfel nct
6
6
6

restriciile asupra semnalului de control u, respectiv strii s fie ndeplinite, n concordan totodat cu teorema
care stabilete performanele sistemului de control,
u t

2V

M f ym k

min

Cum ym

1
2

2V

X t Y m

min

1
1

Mf f U X
M g gU

gL X

1
2

2V

i impunem X
, rezult

6 30 min
30
6

,
2V

M f ym k

min

1/ 2

1/ 2

2V

, adic

1
2

min

2
15
10

Aleg k1 2, k2 1 ceea ce conduce la un polinom cu rdcini n semiplanul stng, matricea Q 0

15

pozitiv definit i simetric. Rezolvnd ecuaia Lyapunov rezult matricea Lyapunov: P 5

a crei valoare minim este min 2.93 , rezultnd V

min 2

2 15

0
,
10

5
pozitiv definit
5

0.267 . Coeficienii , M f , M g se determin

innd cont de mrginirea semnalului de comand pe care o impune algoritmul, rezultnd:


0.7, M f 16, M g 16
. . Pentru ce de-al doilea tip de controller fuzzy se alege 0.01 .
Programele de simulare au fost realizate sub mediul MATLAB. Vectorul parametrilor ce se ajusteaz iniializat
cu respectarea restriciilor care i se impun.
Controller fuzzy adaptiv indirect cu primul tip de model fuzzy
Se folosesc 5 variabile lingvistice pentru acoperirea domeniului .

, 1 50 , 2 1 , Ts=0.01,
Referin treapt unitate ym
30


X 0
0 , rezultnd n final o eroare de urmrire e=3.0746e-010 , de modelare em= 0.1047 i
60

valoarea funciei Lyapunov V=4.7265e-019. Comanda supervizoare va fi zero, valoarea funciei Lyapunov
neatingnd pragul de activate a acesteia.

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

Reele Neuronale i Logica Fuzzy n Automatizri

sin t , 1 50 , 2 1 , Ts=0.01
30
x10=-pi/60; e= 9.2416e-005,V= 4.6366e-008

Referin sinusoidal y m

Control Inteligent i Adaptiv

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

Perturbez referina cu un semnal stochastic avnd amplitudinea jumtate din amplitudinea semnalului de
referin:

Se observ c sistemul filtreaz perturbaia, ieirea semnalul de ieire fiind aproape sinusoidal.

Reele Neuronale i Logica Fuzzy n Automatizri

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

Control Inteligent i Adaptiv

Reele Neuronale i Logica Fuzzy n Automatizri

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

Control Inteligent i Adaptiv

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

Folosesc 3 variabile lingvistice pentru acoperirea domeniului, reconsidernd semnalul sinusoidal

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

Consider cazul unei referine sinusoidale dar de amplitudine pi/4 n afara domeniului considerat pentru
x, considerndu-se tot 3 variabile lingvistice , paii de cutare fiind gam1=5, gam2=0.1.

Reele Neuronale i Logica Fuzzy n Automatizri

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 iniial a procesului ce se modeleaz oscilaiile sunt mrginite de
aceeai margine. Din modul cum oscileaz nc parametrii supui ajustrii se deduce c parametrii nu sunt
nc cei mai buni.

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

Presupunem c despre proces nu avem disponibile informaii cum ar fi mrginirea funciilor,etc, ci numai
cunoatem c gradul relativ al sistemului este 2. Necunoscnd domeniul de variaie al parametrilor
sistemului, ajustez parametrii acestuia direct dup gradient, nemaiintroducnd 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 ym

, 1 50 , 2 1 , Ts=0.01
30


X 0
0 , rezultnd n final o eroare de urmrire e= 2.6499e-010, de modelare
60

em= -2.0343e-006 i valoarea funciei Lyapunov V= 2.2607e-014. Comanda supervizoare va fi zero,


valoarea funciei Lyapunov neatingnd pragul de activate a acesteia.

Reele Neuronale i Logica Fuzzy n Automatizri

sin t , 1 50 , 2 1 , Ts=0.01
30
x10=-pi/60; e= 1.4566e-004,V= 1.2482e-007

Referin sinusoidal y m

Control Inteligent i Adaptiv

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

Algoritmul de ajustare a parametrilor se realizeaz cu pas constant. Pasul de cutare poate fi interpretat ca
o rat de nvare, avnd n vedere structura similar cu a unei reele neuronale a modelelor fuzzy.
Algoritmul acioneaz asupra minimizrii erorii de urmrire 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, rezultnd la o treapt de pi/30:
e= -3.5162e-004; V= 2.6888e-011;

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

4.2 Aplicaie pentru un sistem liniar


Se consider sistemul dat prin funcia de transfer H s

x1 x2

2 03. x2 u

1
care conduce la ecuaiile de stare
s( 0.3s 1)

respectiv y x1 . Rspunsul 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, neconsiderndu-se un domeniu n care s se
gseasc parametrii ajustabili.
Controller fuzzy adaptiv direct cu primul tip de model fuzzy
Pentru 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 funciilor de
apartenen 1 parametrii iniiali ( centrele concluziilor legilor de apartenen se aleg aleatoriu n intervalul
[-5 5].

Se consider aceeai parametrii pentru definirea dinamicii erorii de urmrire ca n exemplul anterior.
referin treapt de amplitudine 3 , perioada de eantionare Ts=0.1, pas de cutare gama=1

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

referin treapt de amplitudine 10 care va plasa variabilele de intrare n afara domeniului de definiie,
perioada de eantionare Ts=0.1, pas de cutare gama=1

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

reconsider o eantionare cu perioada de 0.5 .Pstrnd acelai pas de cutare sau rat de nvare
sistemul devine instabil, deoarece reeaua nu reuete s se antreneze. Pentru aceasta reconsider un nou
pas de cutare mai mic gama=0.2 avnd n vedere c eroarea de urmrire dup care se realizeaz
ajustarea evolueaz mai repede. Va fi afectat dinamica sistemului avnd n vedere c procesul de
nvare necesit cam acelai timp.

Reele Neuronale i Logica Fuzzy n Automatizri

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 precizai vor fi
perioada de eantionare Ts, pasul de cutare gama, numrul de reguli implicate n construirea modelului
controllerului M i limita inferioar S pentru dispersia funciilor de apartenen.
referin treapt unitate de amplitudine 3, Ts=0.1; gama=1;M=5;S=1;

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

Ca urmare a pasului de cutare rezult n primul pas de ajustare valori negative pentru dispersiile
funciilor radiale, valori care ca urmare a algoritmului de limitare se vor pstra neschimbate.
reconsider cazul unui semnal de referin triunghiular semnal prin care impunem sistemului s nvee 2
tipuri de semnale de referin.

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

Reconsider sistemul H s 0.3s 1 s 1 care este un sistem de faz neminim i nu are o


component integratoare n el. n aceleai condiii iniiale ca i primul sistem simulez controlul adaptiv
fuzzy adaptiv direct. Sistemul nu va avea eroare staionar.

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

10

Reconsider procesul cu un coeficient de amplificare mai mare: H s 0.3s 1 s 1 . n aceleai


condiii sistemul devine instabil fiind necesar schimbarea domeniilor de definiie pentru variabilele de
intrare, lucru care nu e necesar n cazul folosirii controllerului cu cel de-al doilea tip de model fuzzy.

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

Anexe de Programe de simulare


function csi=radial(x,x0,sigmax); % construiete setul de funcii 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);

Reele Neuronale i Logica Fuzzy n Automatizri


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 funciei 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);

Control Inteligent i Adaptiv

Reele Neuronale i Logica Fuzzy n Automatizri

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 sinusoidala
ym=[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 conine 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;

Funcii ce implementeaz restriciile impuse asupra funcionalelor ce intr n componena modelului


pend_fu.m

Reele Neuronale i Logica Fuzzy n Automatizri


function y=pend_fu(x);

Control Inteligent i Adaptiv

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 intrari
nn=2;
%starea initiala
x=zeros(nn,1); x(1)=-pi/60;
%semnale comanda initiale
uc=[];us=[];
%limita domeniu valori intrare in proces
Mx=pi/6;
%definire parametrii functii radiale
mf=5; %numar variabile lingvistice pentru modelul f
sigmf=ones(1,mf)*pi/24; %definire variante pentru variabilel lingvistice
xcf=(-Mx:2*Mx/(mf-1):Mx)';% centre variabile lingvistice

Reele Neuronale i Logica Fuzzy n Automatizri


MMf=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 reguli
tetaf=3*(rand(MMf,1)-0.5)/0.5;%centre concluzii legi
mg=5; %numar variabile lingvistice pentru modelul g
sigmg=ones(1,mg)*pi/24; %definire variante pentru variabilel lingvistice
xcg=(-Mx:2*Mx/(mg-1):Mx)';% centre variabile lingvistice
MMg=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 reguli
tetag=0.15*(rand(MMg,1)-0.5)/0.5+1.15;%centre concluzii legi
%parametrii implicati in ecuatia Lyapunov
k2=1;%corespunde lui e
k1=2;%corespunde primei derivate a erorii
K=[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 cautare
gam1=5;gam2=0.1;
%marginirea functionalelor ce descriu procesul
fun='pendul';
fu='pend_fu';
gl='pend_gl';
gu='pend_gu';
%modelul de referinta
referinta ='sis_ref';
%perioada de esantionare
Ts=0.01;
%prima referinta
ym=feval(referinta,0,Ts,zeros(nn+1,1));
%eroarea initiala
e=x-ym(1:nn);
g=9.8;mc=1;m=0.1;l=0.5;
no=input('numar iteratii=');

Control Inteligent i Adaptiv

Reele Neuronale i Logica Fuzzy n Automatizri


bc=zeros(nn,1);bc(nn)=1;
for k=1:no
timp(k)=(k-1)*Ts;

Control Inteligent i Adaptiv

[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);
clc
k,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
%P=matricea Lyapunov calculata aprioric, Q matrice nxn pozitiv definita utilizata in ecuatia Lyapunov

Reele Neuronale i Logica Fuzzy n Automatizri


%|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 intrari
nn=2;
%starea initiala
x=zeros(nn,1); x(1)=-pi/60;
%limita domeniu valori intrare in proces
Mx=pi/6;
%definire parametrii functii radiale pentru functia f
MMf=15;%numar reguli
Mf=16;%domeniu parametrii ajustabili
S=0.1;%limitare inferioara dispersie pentru a asigura acoperirea domeniului
x0f=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 ajustabili
x0g=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 Lyapunov
k2=1;%corespunde lui e
k1=2;%corespunde primei derivate a erorii
K=[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 cautare
gam1=50;gam2=1;
%marginirea functionalelor ce descriu procesul
fun='pendul';
fu='pend_fu';
gl='pend_gl';
gu='pend_gu';
%modelul de referinta

Control Inteligent i Adaptiv

Reele Neuronale i Logica Fuzzy n Automatizri


referinta ='sis_ref';

Control Inteligent i Adaptiv

%perioada de esantionare
Ts=0.01;
%prima referinta
ym=feval(referinta,1,Ts,zeros(nn+1,1));
%eroarea initiala
e=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)]';
clc

Reele Neuronale i Logica Fuzzy n Automatizri


k,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)

Control Inteligent i Adaptiv

linad_f1.m simulator pentru controller fuzzy adaptiv indirect obinut 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 intrari
nn=2;
%starea initiala
x=zeros(nn,1); x(1)=-pi/30;
%semnale comanda initiale
uc=[];us=[];
%limita domeniu valori intrare in proces
Mx=pi/6;
%definire parametrii functii radiale
mf=5; %numar variabile lingvistice pentru modelul f
sigmf=ones(1,mf)*pi/24; %definire variante pentru variabilel lingvistice
xcf=(-Mx:2*Mx/(mf-1):Mx)';% centre variabile lingvistice
MMf=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;

Reele Neuronale i Logica Fuzzy n Automatizri


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

Control Inteligent i Adaptiv

mg=5; %numar variabile lingvistice pentru modelul g


sigmg=ones(1,mg)*pi/24; %definire variante pentru variabilel lingvistice
xcg=(-Mx:2*Mx/(mg-1):Mx)';% centre variabile lingvistice
MMg=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 reguli
tetag=0.15*(rand(MMg,1)-0.5)/0.5+1.15;%centre concluzii legi
%parametrii implicati in ecuatia Lyapunov
k2=1;%corespunde lui e
k1=2;%corespunde primei derivate a erorii
K=[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 cautare
gam1=50;gam2=1;
%marginirea functionalelor ce descriu procesul
fun='pendul';
fu='pend_fu';
gl='pend_gl';
gu='pend_gu';
%modelul de referinta
referinta ='sis_ref';
%perioada de esantionare
Ts=0.01;
%prima referinta
ym=feval(referinta,0,Ts,zeros(nn+1,1));
%eroarea initiala
e=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);
x(:,k+1)=Y(ny,1:my-1)';

Reele Neuronale i Logica Fuzzy n Automatizri


Control Inteligent i Adaptiv
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);
clc
k,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';
k2=1;%corespunde lui e

Reele Neuronale i Logica Fuzzy n Automatizri


k1=2;%corespunde primei derivate a erorii
K=[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 x
xcf=(-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 initiali
tetaf=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)];

Control Inteligent i Adaptiv

Reele Neuronale i Logica Fuzzy n Automatizri


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

Control Inteligent i Adaptiv

%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);
clc
k,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
clear
no=input('numar iteratii=');
Ts=input('perioada de esantionare=');
gam1=input('gama1=');
nn=2; %dimensiune intrare

Reele Neuronale i Logica Fuzzy n Automatizri


fu='pend_fu';
fun='pendul';
k2=1;%corespunde lui e
k1=2;%corespunde primei derivate a erorii
K=[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 implicate
MMf=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;
tetaf(:,k+1)=ada_teta(tetaf(:,k),co,cof1,cof2(k),Mf,gam1,df,1);

Control Inteligent i Adaptiv

Reele Neuronale i Logica Fuzzy n Automatizri


Control Inteligent i Adaptiv
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)]';
clc
k,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 e
k1=2;%corespunde primei derivate a erorii
K=[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;
Mf=5;Mx=4;

Reele Neuronale i Logica Fuzzy n Automatizri


bl=1/0.3;
mf=5; %partitiile fuzzy implicate in acoperirea domeniului
sigmf=ones(1,mf); %numai pentru o componenta a lui x
xcf=(-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 initiali
tetaf=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;
clc
k,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)

Control Inteligent i Adaptiv

Reele Neuronale i Logica Fuzzy n Automatizri


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
clear
no=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 implicate
MMf=5;
k2=1;%corespunde lui e
k1=2;%corespunde primei derivate a erorii
K=[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:no
Ve(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);
x(:,k+1)=Y(ny,1:my-1)';

Reele Neuronale i Logica Fuzzy n Automatizri


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

Control Inteligent i Adaptiv

[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)]';
clc
k,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;

Reele Neuronale i Logica Fuzzy n Automatizri

Control Inteligent i Adaptiv

CUPRINS
Prefa...............................................................................................................................................................
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 stabilitii 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 stabilitii 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: Simulri algoritmi.........................................................................................................................
4.1 Aplicaie: Sistem de urmrire traiectorie pentru pendulul invers............................................................
4.2 Aplicaie pentru un sistem liniar..............................................................................................................
4.3: Programe de simulare folosite................................................................................................................
CUPRINS..........................................................................................................................................................

S-ar putea să vă placă și