You are on page 1of 59

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:
( )
( )
( )



M
l
n
i
i
F
n
i
i
F
M
l
l
x
x y
X f
l
i
l
i
1 1
1 1

(1.1)
Referitor la notaiile folosite se fac urmtoarele precizri:
n
n
R U
x
x
X

,
`

.
|
...
1
, (1.2)
reprezint setul de semnale de intrare reale. Dac se consider regulile IF-THEN de forma:
IF
x
1
is F
l
1
and . . . and F
n
l
THEN y is G
l
cu
M l , 1
, (1.3)
unde M=numrul de reguli,

F
i
i
l
x ( )
va reprezenta funcia de apartenen asociat mulimii fuzzy
F
i
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:
( )
( )

A
X X
X X
X X

'

1
0
,
,
(1.4)
rezultatul activrii regulii l l constituie mulimea fuzzy B
l
calculat conform urmtoarei reguli de
compunere:
( )
( )
( )
B
l l
X U
F F G
l
A
y X y X
l
n
l l

]
]
]


sup , *
...
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:
( )
( )
( )

F F G
l
F F G
l
l
n
l l l
n
l l
X y X y
1 1


... ...
, (1.6)
definim produsul cartezian ca produs:
( ) ( )
F F F
i
i
n
l
n
l
i
l
X x
1
1

...
(1.7)
n final rezult concluzia fuzzy considernd T-norma * ca i produs pentru funciile de
apartenen:
( )
( )
( ) ( )

B
l
X U
F
i
i
n
G
l
A
l
i
l l
y x y X

]
]
]

sup
1
(1.8)
Ca rezultat al activrii celor M reguli se obin M mulimi fuzzy caracterizate prin funciile de
apartenen: ( )

B
l
l
y
. Mulimea fuzzy B care exprim concluzia final va fi reuniunea celor M
mulimi fuzzy:
B B
l
l
M

1
(1.9)
cu funcia de apartenen calculat ca o sum de T-conorme:
( ) ( ) ( )

B
l
B B
M
y y y
M
+ +
1
1

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

G
l
l
y 1
i
conform cu relaia (1.4) rezult supremul astfel:
( )
( )
B
l
F
i
i
n
l
i
l
y x

1
(1.11)
procedura de defuzzificare se consider a fi media ponderat a centrelor mulimilor fuzzy ale
consecinelor regulilor de deducie:
( )
( )
y
y y
y
l
B
l
l
M
B
l
l
M
l
l

1
1
(1.12)
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:
( ) ( )
[ ]
( ) ( )
[ ]
y
y x x
x x
l
F F
n
l
M
F F
n
l
M
l
n
l
l
n
l

min ,...,
min ,...,


1
1
1
1
1
1
(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:
( )

F
i
i
i
l
i
i
l
x
x x


|
.

`
,

'

'

exp
2
(1.14)
sistemul (1.1) putnd fi pus sub forma:
Reele Neuronale i Logica Fuzzy n Automatizri Control Inteligent i Adaptiv
( ) f X


|
.

`
,

'

'


|
.

`
,

'

'





y
x x
x x
l
i
i
l
i i
n
l
M
i
i
l
i i
n
l
M
exp
exp

2
1 1
2
1 1
(1.15)
Pentru forma sistemului fuzzy (1.15) informaia lingvistic poate fi ncorporat iniial n setul de
reguli IF-THEN, iar n algoritmul de ajustare (antrenare) a parametrilor sistemului y
l
, xi
l
,

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
U

'

'

<

2
(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:
( ) p X
x x
x x
j
i
i
l
i i
n
i
i
l
i i
n
l
M


|
.

`
,

'

'


|
.

`
,

'

'


exp
exp

2
1
2
1 1
j=1..M (1.17)
Atunci sistemul (1.13) va fi echivalent cu urmtoarea form:
( ) ( ) f X p X
j j
j
M

1
(1.18)
unde

j
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
ajusteaz fiind y x
l
i
l
i
l
, , , 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:
( ) ( )
1
1 1
3 2
2 1
,..., ,...,
. ..........
x y
u x x g x x f x
x x
x x
n n n

(2.1)
sau forma echivalent:
( )
( )
( )
( )
x y
u x x g x x f x
n n n

+
1 1
,..., ,...,
(2.2)
cu f, g funcii continue,
u y R ,
reprezint intrarea, respectiv ieirea din sistem, iar ( )
T
n
x x X ,...,
1

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 R
C
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 t
m
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
M t X
,
( ) <

M t
,
( ) <
u
M X u ,
oricare ar fi 0 t
unde
M M M
X u
, ,
sunt parametrii stabilii de proiectant. Eroarea de urmrire
e y y
m

se impune ca
s fie ct mai mic posibil cu ndeplinirea obiectivelor anterioare.
S considerm atunci vectorul
( )
( )
T
n
e e e e e
1
,..., , ,

i ( )
n T
n
R k k k k ,..., ,
2 1
astfel nct toate
rdcinile polinomului ( )
n
n n
k s k s s h + + +

...
1
1
s se gseasc n semiplanul stng al planului complex.
Dac funciile f, respectiv g sunt cunoscute atunci legea de control:
( )
( )
( )
[ ] e k y X f
X g
u
T n
m
+ +
1
(2.3)
care se aplicat n (2.2) implic:
( ) ( )
0 ...
1
1
+ + +

e k e k e
n
n n
(2.4)
Reele Neuronale i Logica Fuzzy n Automatizri Control Inteligent i Adaptiv
conform ipotezelor fcute. Astfel
( ) lim
t
e t

0
. Dar forma funciilor f, g nefiind cunoscut, conform
teoremei universale de aproximare le nlocuim cu modelele fuzzy ( )

/ f X
, respectiv
( ) / g X
conform
cu cele prezentate n primul capitol. Rezult urmtoarea lege de control:

( )
( )
( )
[ ] e k y X f
X g
u
T n
m c
+ +

/
1
(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:
( )
( ) ( ) [ ] ( ) ( ) [ ]
c g f
T n
u X g X g X f X f e k e + + / /

(2.6)
sau echivalentul cu variabile de faz:
( ) ( ) [ ] ( ) ( ) [ ] {
c g f C C
u X g X g X f X f b e e + + / /

(2.7)
unde:

C
n n
k k k

]
]
]
]
]
]
]
]

0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 0 0 1
1 1
...
...
... ... ... ... ... ... ...
...
... ... ... ...
, respectiv b
C

]
]
]
]
]
]
0
0
1
...
(2.8)
Se observ c polinomul caracteristic
( ) ( )
n
n n
C
k s k s sI + + +

...
1
1
este stabil. Exist atunci o
matrice unic P pozitiv definit, simetric nxn care satisface ecuaia Lyapunov:
Q P P
C
T
C
+ (2.9)
unde Q este o matrice arbitrar aleas
n n
pozitiv definit. S construim atunci funcia Lyapunov care
descrie comportamentul energetic al sistemului:
e P e V
T
e
2
1

, a crei derivat se calculeaz utiliznd


ecuaia erorii (2.7):
( ) ( ) ( ) ( ) ( ) [ ]
C g f C
T T
T T
e
u X g X g X f X f b P e e Q e
e P e e P e V
+ +
+
/ /

2
1
2
1
2
1

(2.9)
Conform teoriei Lyapunov pentru ca
( ) ( )
x y e
i m
i i

1 1
s fie mrginit, ( adic e s fie mrginit ntruct y
m
este mrginit prin proiectare ) se impune ca
V
e
( energia sistemului erorii ) s fie mrginit, ceea ce
implic

V
e
0 cnd V V
e
impus prin proiectare. Din ecuaia (2.8) se observ c este destul de dificil
de a gsi comanda
u
C
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
u
S
, astfel c semnalul de comand final va fi:
u u u
C S
+ (2.10)
Scopul acesteia va fi de a fora

V
e
0 cnd V V
e
. 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:
( ) ( ) [ ] ( ) ( ) [ ] ( ) {
S c g f C C
u X g u X g X g X f X f b e e + + / /

(2.11)
Recalculm din nou prima variaie a funciei Lyapunov conform cu noua ecuaie (2.10):
( ) ( ) ( ) ( ) ( ) ( ) ( ) [ ]
( ) ( ) ( ) ( ) [ ] ( )
S C
T
C C g f C
T T
S C g f C
T T
e
u X g b P e u X g u X g X f X f b P e e Q e
u X g u X g X g X f X f b P e e Q e V
+ + + +
+ +


/ /

2
1
/ /

2
1

(2.12)
Reele Neuronale i Logica Fuzzy n Automatizri Control Inteligent i Adaptiv
Pentru a proiecta
u
S
astfel nct membrul drept al relaiei (2.11) s fie negativ se presupune c se pot
determina funciile ( ) ( ) ( ) f X g X g X
U U
L
, , astfel nct:
( ) ( ) f X f X
U

, respectiv
( ) ( ) ( ) g X g X g X
L
U
pentru X R
n
, cu ( ) ( ) ( ) f X g X g X
U U
L
> , , 0.
Pe baza marginilor funciilor f, respectiv g alegem comanda supervizoare de forma:
( )
( )
( ) ( ) ( ) ( ) [ ]
C
U
C g
U
f
L
C
T
S
u X g u X g X f X f
X g
b P e I u + + + / /

1
sgn
*
1
(2.13)
unde I
V V
V V
e
e
1
1
0
*
,
,

>

'

, ( ) sgn
,
,
y
y
y


<

'

1 0
1 0
.
Introducnd (2.13) n (2.12) i considernd cazul V V
e
> , rezult:
[ ]
[ ] 0
2
1

2
1
+ + +
+ + + +
e Q e u g u g f f
g
g
gu u g f f b P e e Q e V
t
C
U
C
U
L
C C C
T T
e

(2.14)
Legea de adaptare a parametrilor:
Se definesc:

( )
( )
( )
( )

f
X U
f
g
X U
g
f f
C
g g
C
f X f X
g X g X
*
*
min sup

/
min sup /

]
]
]

]
]
]

(2.15)
unde {

f f f f i
l
M > / , 0
, cu
M
f ,

constante de proiectare. Dac se folosete primul tip de


model fuzzy ,

se ignor ( prin acesta se impune ca


i
l
implicate n definirea funciilor de apartenen s
fie pozitive i s nu existe puncte necuprinse n nici o partiie fuzzy).
{

g g g g
l
i
l
M y > > / , , 0 0 (2.16), semnificaia constantelor fiind aceeai cu precizarea
c restricia y
l
s-a introdus pentru a impune ( )
/ g X
g

pozitiv conform ipotezelor preliminare.


Se definete eroarea minim de aproximare:
( )
( )
( )
( )
[ ]
w f X f X g X g X u
f g C
+

/ /
* *
(2.17)
Rescriem atunci ecuaia erorii (2.10):
( ) ( ) ( ) ( ) ( )
[ ]


/

/ / /
* *
e e b f X f X g X g X u w
C C f f g g C
+ + (2.18)
Dac alegem pentru modelele fuzzy prima form pentru care se realizeaz ajustarea numai a centrelor
consecinelor y
l
a regulilor i tratnd modelul ca pe o serie de funcii radiale
( ) X
relaia (2.18) se
rescrie:
( ) ( ) ( )
[ ]
e e b g X u b w b X X u
C C S C C f
t
g
t
C
+ + + (2.19)
unde

f g f g f g , , ,
*

. Considerm funcia Lyapunov:
V e Pe
t
f
t
f g
t
g
+ +
1
2
1
2
1
2
1 2

(2.20)
unde

1
, respectiv

2
sunt constante pozitive. Derivata acesteia de-a lungul traiectoriei (2.19) este:
( ) ( )
[ ]
( )
[ ]

V e Qe g X e Pb u e Pb w e Pb X e Pb X u
t t
C S
t
C f
t
f
t
C g
t
g
t
C C
+ + + + +
1
2
1 1
1
1
2
2


(2.21)
utilizndu-se ecuaia Lyapunov (2.9) i

, ,

f g f g

. Conform relaiei (2.12) prin care s-a introdus


comanda supervizoare i cum
( ) g X >0
pe domeniul de controlabilitate
U
C
rezult ( ) g X e Pb u
t
C S
0.
Alegnd apoi urmtoarea lege de adaptare a parametrilor:
Reele Neuronale i Logica Fuzzy n Automatizri Control Inteligent i Adaptiv
( )
( )



f
t
C
g
t
C C
e Pb X
e Pb X u

1
2
(2.22)
atunci (2.21) devine:

V e Qe e Pb w
t t
C
+
1
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:
( ) ( )
( )
( ) ( )
( )

/

/

/
/ /
/
*
*
f X f X
f X
O
g X g X
g X
O
f f
t
f
f
f
g g
t
g
g
g
f
g


|
.

`
,

+
|
.

`
,


|
.

`
,

+
|
.

`
,



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


/ /
e e b g X u b v b
f X g X
u
C C S C C f
t
f
f
g
t
g
g
C
+ + +

]
]
]
]

(2.25)
unde:

v w O O
f g
+
|
.

`
,

+
|
.

`
,


2 2
(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
k k k
n 1 2
, ,...,
astfel nct toate rdcinile polinomului s k s k
n n
n
+ + +

1
1
0 ... s fie
n semiplanul stng al planului complex.
se alege o matrice Q nxn pozitiv definit i se rezolv ecuaia Lyapunov
C
t
C
P P Q +
unde

C
n n
k k k

]
]
]
]
]
]
]
]

0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 0 0 1
1 1
...
...
... ... ... ... ... ... ...
...
... ... ... ...
, respectiv
b
C

]
]
]
]
]
]
0
0
1
...
se dau parametrii
M M V
f g
, , ,
bazndu-ne pe cunotine practice asupra procesului
Construirea unui controller iniial
se definesc
m
i
mulimi fuzzy F
i
l
i
ale premizelor regulilor de deducie ale cror funcii de
apartenen acoper uniform
U
C
i
proiecia domeniului pentru variabilele de intrare pe
coordonata a i-a, unde l m
i i
1, i i n 1, , n fiind numrul de intrri.
se construiete baza de reguli pentru modelele fuzzy ( ) ( )

, , , f X g X
f g

, fiecare avnd
m m m
n 1 2
... reguli ale cror premize cuprinde toate combinaiile posibile ale mulimilor
fuzzy F
i
l
i
pentru i n 1, . Regulile sunt de forma:
( )
( )
( )
( )
( )
( )
R IFx isF and andx isF THEN f X isG
R IFx isF and andx isF THEN g X isH
f
l l l
n n f
l l
g
l l l
n n f
l l
n n
n n
1 1
1 1
1 1
1
1 1
1
,..., ln ,...,
,..., ln ,...,
: ... ,

,
: ... , ,

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.
se construiesc funciile radiale de baz:
( )
( )
( )
( )

l l
F
i
i
n
F
i
i
n
l
m
l
m
n
i
l
i
i
l
i
n
n
X
x
x
1
1
1
1
1 1
,...,
...

]
]
]


i se
ordoneaz n ordinea natural pentru l m l m
n n 1 1
1 1 , ,..., , n vectorul
( ) X
, m
i
i
n

1
-
dimensional. Se construiesc vectorii parametrilor ajustabili
( )
f
0
, respectiv
( )
g
0
ca i
argumentele funciilor ( )

G
l l
n 1
,..., , respectiv ( )

H
l l
n 1
,..., n care aceasta ating valoarea maxim
adic 1. rezult atunci modelele fuzzy ca i serii de funcii radiale :
( )
( )
( )
( )

,
,
f X X
g X X
f f
t
g g
t

Adaptarea on-line
se aplic procesului comanda
u u u
C S
+
unde
( )
( )
( )
[ ]
u
g X
f X y k e
c m
n t
+ +
1
/

/


i
( )
( )
( )
( )
( )
( )
[ ]
u I e Pb
g X
f X f X g X u g X u
S
t
C
L
f
U
g C
U
C
+ + +
1
1
*
sgn

/ /
Reele Neuronale i Logica Fuzzy n Automatizri Control Inteligent i Adaptiv
unde: I
V V
V V
e
e
1
1
0
*
,
,

>

'

, ( ) sgn
,
,
y
y
y


<

'

1 0
1 0
.
vectorul parametrilor

f se ajusteaz conform urmtorului algoritm


( ) ( )
( )
{
( )



f
t
C f f f f
t
C f
t
t
C f f
t
C f
t
e Pb X dac M sau M e Pb X
P e Pb X M e Pb X

<
|
.

`
,


|
.

`
,


|
.

`
,

'

1
1
si 0
dac si < 0
unde
operatorul de proiecie se definete:
( )
{
( )
( )
P e Pb X e Pb X e Pb
X
t
C
t
C
t
C
f f
t
f
+

1 1 1 2
vectorul parametrilor

g se ajusteaz conform urmtorului algoritm:


oricnd un element

gi

se utilizeaz
( ) ( )
( )


g i
t
C i
t
C i
t
C i
e Pb X d a c e Pb X
e Pb X

<

'

2
0
0 0
u u
d a c u

C C
C
altfel se utilizeaz:
( ) ( )
( )
{
( )



g
t
C g g g g
t
C g
t
C
t
C C g g
t
C g
t
e Pb X dac M sau M e Pb X u
P e Pb X u M e Pb X

<
|
.

`
,


|
.

`
,


|
.

`
,

'

2
2
u si 0
dac si u < 0
C
C

unde operatorul de proiecie se definete analog:
( )
{
( )
( )
P e Pb X u e Pb X u e Pb
X
u
t
C C
t
C C
t
C
g g
t
g
C
+

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

f f g g
M M ,
i toate elementele vectorului

g sunt mai mari dect

,
2.
( ) X t Y
V
m
+
|
.

`
,

2
1
2

min
3. ( )
( )
( )
( ) ( )
( )
u t M y k
V
g X
M f X M g M y k
V
f m
n
L
f
U
g
U
f m
n
+ +
|
.

`
,

|
.

`
,

+ + + + + +
|
.

`
,

|
.

`
,

]
]
]
]
]
1 2 1 1 2
1
2
1
2

min min
( )
t 0
, unde
min
este cea mai mic valoare proprie a matricii P i
( )
( ) Y y y y
m m m m
n
t


, ,...,
1
4. ( ) ( ) e d a b w d
t t

0
2
0
2

+ ,
( )
t 0
, cu a, b constante i w eroarea minim de aproximare
definit de (2.17).
5. Dac ( ) w d
t

0
2

< atunci
( ) lim
t
e t

0
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
Se consider modele fuzzy de tipul al doilea de forma:
( )
( )

/
exp
exp
/
exp
exp
f X
y
x x
x x
g X
y
x x
x
f
f
l
l
M
i
fi
l
fi
l
i
n
i
fi
l
fi
l
i
n
l
M
g
g
l
l
M
i
gi
l
gi
l
i
n
i


|
.

`
,

|
.

`
,

]
]
]
]


|
.

`
,

|
.

`
,


|
.

`
,

|
.

`
,

]
]
]
]





1
2
1
2
1
1
2
1

|
.

`
,

|
.

`
,


x
gi
l
gi
l
i
n
l
M

2
1
unde
[ ]

f g f g
l
fi gi
l
fi gi
l
y x
, ,
,
,
... ... 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
se calculeaz
( )

, f X
f
f
conform urmtorului algoritm:
( )
( )
( )
( )


f
y
b
b
f
x
y f
b
b
x x
f
y f
b
b
x x
f
l
f
l
f
l
l
M
fi
l
f
l
f
l
l
M f
l
i
fi
l
fi
l
fi
l
f
l
f
l
l
M f
l
i
fi
l
fi
l

1
1
2
1
2
3
2
2
unde b
x x
f
l i
fi
l
fi
l
i
n


|
.

`
,

|
.

`
,

exp

2
1
, relaiile fiind deduse prin
efectuarea derivrii corespunztoare asupra modelului. Pentru g derivata se calculeaz identic,
schimbnd f cu g n relaiile de mai sus.
se aplic procesului comanda
u u u
C S
+
unde
( )
( )
( )
[ ]
u
g X
f X y k e
c m
n t
+ +
1
/

/


i
( )
( )
( )
( )
( )
( )
[ ]
u I e Pb
g X
f X f X g X u g X u
S
t
C
L
f
U
g C
U
C
+ + +
1
1
*
sgn

/ / (2.12)
unde: I
V V
V V
e
e
1
1
0
*
,
,

>

'

, ( ) sgn
,
,
y
y
y


<

'

1 0
1 0
.
Reele Neuronale i Logica Fuzzy n Automatizri Control Inteligent i Adaptiv
vectorul parametrilor

f se ajusteaz conform urmtorului algoritm:


oricnd un element

fi
l

se utilizeaz


f i
l
t
C
f i
l
t
C
f i
l
t
C
f i
l
e Pb
f
d a c e Pb
f
e Pb
f

<

'

1
0
0 0

d a c

altfel se utilizeaz:

f
t
C
f
f f f f
t
C f
t
f
t
C
f
f f
t
C f
t
f
t
C
f
e Pb dac M sau M e Pb
P e Pb M e Pb
P e Pb

<
|
.

`
,


|
.

`
,

'

'


|
.

`
,

'

'

'

1
1
1
f
si
f
0
f
dac si
f
< 0
f

1 1 2
e Pb e Pb
t
C
f
t
C
g g
t
g
f

f f
vectorul parametrilor

g se ajusteaz conform urmtorului algoritm:


oricnd un element
y
g
l

se utilizeaz

y
e Pb
g
y
d a c e Pb
g
y
e Pb
g
y
g
l
t
C
g
l
t
C
g
l
t
C
g
l

<

'

2
0
0 0
u u
d a c u

C C
C
oricnd un element

gi
l

se utilizeaz


g i
l
t
C
g i
l
t
C
g i
l
t
C
g i
l
e Pb
g
d a c e Pb
g
e Pb
g

<

'

2
0
0 0
u u
d a c u

C C
C
Reele Neuronale i Logica Fuzzy n Automatizri Control Inteligent i Adaptiv
altfel se utilizeaz:

g
t
C
g
g g g g
t
C g
t
g
t
C
g
g g
t
C g
t
g
t
C
e Pb dac M sau M e Pb
P e Pb M e Pb
P e Pb

<
|
.

`
,


|
.

`
,

'

'


|
.

`
,

'

2
2
2
g
u si
g
u 0
g
u dac si
g
u < 0
g
C C
C C
g
t
C
g
t
C
g g
t
g
g
e Pb e Pb u
g
u
g
u
C C C

'

'

2 2 2

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 f X g X u
r
+ . 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 f x x x bu
y x
n n
+

, ,...,
1
(3.1)
unde f constituie funcia necunoscut, b este o constant pozitiv , u R este semnalul de comand i y
este ieirea din proces. Presupunem c vectorul variabilelor de stare
( )
( ) X x x x
n
t


, ,...,
1
este accesibil
msurtorilor. Obiectivele de control vor fi aceleai, cu deosebirea c semnalul de comand ( ) u X
C
/ se
consider a fi un sistem fuzzy.
Presupunem c semnalul de control are forma: ( ) ( ) u u X u X
C S
+ / (3.2)
Prin nlocuire n (3.1) rezult:
( )
( ) ( ) ( ) [ ]
x f X b u X u X
n
C S
+ + / (3.3)
Reele Neuronale i Logica Fuzzy n Automatizri Control Inteligent i Adaptiv
Dac f i b sunt cunoscute atunci legea de comand:
( )
[ ]
u
b
f y k e
m
n t *
+ +
1
(3.4)
va fora eroarea de urmrire e s convearg spre 0, unde
( )
( ) e e e e
n


, ,...,
1
i ( ) k k k k
n n
t


, ,...,
1 1
astfel ales astfel nct rdcinile polinomului ( ) h s s k s k
n n
n
+ + +

1
1
... 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 k e b u u X u X
n t
C S
+
*
/ (3.5) sau
echivalentul acesteia cu variabile de faz: ( ) ( )
[ ]
/
*
e e b u u X u X
C C C S
+ (3.6) unde

C
n n
C
k k k
b
b
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 0 0 1
0
0
0
1 1
...
...
. . . . . . .
...
. . . .
,
...

]
]
]
]
]
]
]
]

]
]
]
]
]
]
]
]


(3.7)
Asociem acestei ecuaii funcia Lyapunov V e Pe
e
t

1
2
unde P este o matrice simetric pozitiv definit,
soluie s ecuaie Lyapunov:
C
t
C
P P Q + (3.8)
cu Q>0. Calculm derivata funciei Lyapunov:
( ) ( )
[ ] ( )

/
* *
V e Qe e Pb u u X u X e Qe e Pb u u e Pb u
e
t t
C C S
t t
C C
t
C S
+ + +
1
2
1
2
(3.9).
Pentru a gsi o comand supervizoare
u
S
astfel nct

V
e
0 se consider c se poate determina o funcie
( ) f X
U
i o constant
b
L
astfel nct:
( ) ( ) f X f X
U

i
0 b b
L
. Comanda supervizoare se va
construi conform cu urmtoarea relaie:
( ) ( )
( )
( )
u X I e Pb u
b
f y k e
S
t
C C
L
U
m
n t
+ + +

]
]
] 1
1
*
sgn (3.10)
unde semnificaia constantelor este aceai. n cazul n care I
1
1
*
(V V
e
> ) rezult prin nlocuire n (3.9):
( )
( )
( )
( )

V e Qe e Pb
b
f y k e u u
b
f y k e e Qe
e
t t
C m
n t
C C
L
U
m
n t t
+ + + + + +

]
]
]

1
2
1 1 1
2
0 (3.11)
Cum P>0 mrginirea lui
V
e
implic mrginirea lui
e
care va implica mrginirea lui
X
.
n continuare se va considera pentru ( ) u X
C
/ 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 /

]
]
]
M X M
C
x
u X u
(3.12)
i eroarea minim de aproximare: ( ) w u X u
C
/
*
(3.13). Ecuaia (3.6) care descrie
comportamentul erori de reglare se rescrie:
( ) [ ]
( ) /
*
e e b u u X b u X b w
C C C C S C
+ (3.14)
Alegnd
( ) ( ) u X X
C
/
i notnd
*
, ecuaia (3.14) devine:
( ) ( ) e e b X b u X b w
C C
t
C S C
+ (3.15)
Redefinim atunci funcia Lyapunov :
V e Pe
b
t t
+
1
2 2

(3.14) a crei derivat va fi:
( )
[ ]

V e Qe e Pb X u w
b
t t
C
t
S
t
+ +
1
2

(3.16)
Fie
p
n
ultima coloan a matricii P astfel c: e Pb e p b
t
C
t
n

(3.17)
Reele Neuronale i Logica Fuzzy n Automatizri Control Inteligent i Adaptiv
nlocuind (3.17) n (3.16) rezult:
( )
[ ]

V e Qe
b
e p X e Pb u e Pb w
t t t
n
t
C S
t
C
+ + +
1
2

(3.18)
Cum

, alegnd legea de ajustare:


( )

e p X
t
n (3.19)
atunci relaia (3.18) devine:

V e Qe e Pb w
t t
C

1
2
(3.20)
S-a utilizat faptul: e Pb u
t
C S
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

:
( ) ( )
( )
u X u X
u
O
C C
t C
/ /
*

+
2
(3.21)
caz pentru care ecuaia erorii de urmrire devine:
( ) e e b
u
b u X b v
C C
t C
C S C
+


(3.22) unde ( )
v w O +
2
, 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
k k k
n 1 2
, ,...,
astfel nct toate rdcinile polinomului s k s k
n n
n
+ + +

1
1
0 ... s fie
n semiplanul stng al planului complex.
se alege o matrice Q nxn pozitiv definit i se rezolv ecuaia Lyapunov
C
t
C
P P Q +
unde

C
n n
k k k

]
]
]
]
]
]
]
]

0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 0 0 1
1 1
...
...
... ... ... ... ... ... ...
...
... ... ... ...
, respectiv
b
C

]
]
]
]
]
]
0
0
1
...
se dau parametrii
M M V
x
, ,
bazndu-ne pe cunotine practice asupra procesului
Construirea unui controller iniial
se definesc
m
i
mulimi fuzzy F
i
l
i
ale premizelor regulilor de deducie ale cror funcii de
apartenen acoper uniform
U
C
i
proiecia domeniului pentru variabilele de intrare pe
coordonata a i-a, unde l m
i i
1, i i n 1, , n fiind numrul de intrri.
se construiete baza de reguli pentru modelele fuzzy ( )

, f X
f

, avnd
m m m
n 1 2
...
reguli ale cror premize cuprinde toate combinaiile posibile ale mulimilor fuzzy F
i
l
i
pentru
i n 1, . Regulile sunt de forma:
( )
( )
( )
R IFx isF and andx isF THEN f X isG
f
l l l
n n f
l l
n n 1 1
1 1
1 ,..., ln ,...,
: ... ,

, 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.
Reele Neuronale i Logica Fuzzy n Automatizri Control Inteligent i Adaptiv
se construiesc funciile radiale de baz:
( )
( )
( )
( )

l l
F
i
i
n
F
i
i
n
l
m
l
m
n
i
l
i
i
l
i
n
n
X
x
x
1
1
1
1
1 1
,...,
...

]
]
]


i se
ordoneaz n ordinea natural pentru l m l m
n n 1 1
1 1 , ,..., , n vectorul
( ) X
, m
i
i
n

1
-
dimensional. Se construiesc vectorii parametrilor ajustabili
( )
f
0
ca i argumentele funciilor
( )

G
l l
n 1
,..., n care aceasta ating valoarea maxim adic 1. Rezult atunci modelul fuzzy al
controllerului ca i serii de funcii radiale : ( )
( ) u X X
C f f
t
,
Adaptarea on-line
se aplic procesului comanda
u u u
C S
+
unde
( ) ( )
( )
( )
u I e Pb u
b
f X y k e
S
t
C C
L
U
m
n t
+ + +

]
]
] 1
1
*
sgn
unde: I
V V
V V
e
e
1
1
0
*
,
,

>

'

, ( ) sgn
,
,
y
y
y


<

'

1 0
1 0
.
vectorul parametrilor

f se ajusteaz conform urmtorului algoritm


( ) ( )
( )
{
( )

f
t
n f f
t
n f
t
t
n f
t
n f
t
e p X dac M sau M e p X
P e p X M e p X

<
|
.

`
,


|
.

`
,

|
.

`
,

'

si 0
dac si < 0
unde operatorul de
proiecie se definete:
( )
{
( )
( )
P e p X e p X e p
X
t
n
t
n
t
n
f f
t
f


2
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.
f
M
2.
( ) X t Y
V
m
+
|
.

`
,

2
1
2

min

3.
( )
( )
u t M
b
f y k
V
L
U
m
n
+ + +
|
.

`
,

|
.

`
,

2
1 2
1
2

min
,
( )
t 0
, unde

min
este cea mai mic valoare
proprie a matricii P i
( )
( ) Y y y y
m m m m
n
t


, ,...,
1
4. ( ) ( ) e d a b w d
t t

0
2
0
2

+ ,
( )
t 0
, cu a, b constante i w eroarea minim de aproximare.
5. Dac ( ) w d
t

0
2

< atunci
( ) lim
t
e t

0
Demonstraia teoremei se gsete n [1].
Reele Neuronale i Logica Fuzzy n Automatizri 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 funciilor
de apartenen
Construirea unui controller iniial
Se consider modele fuzzy de tipul al doilea de forma:
( )
u X
y
x x
x x
C f
f
l
l
M
i
fi
l
fi
l
i
n
i
fi
l
fi
l
i
n
l
M
/
exp
exp


|
.

`
,

|
.

`
,

]
]
]
]


|
.

`
,

|
.

`
,



1
2
1
2
1
unde
[ ]

f f
l
fi
l
fii
l
y x ... ... constituie vectorul
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
se calculeaz
( )

u X
C f
f
,
conform urmtorului algoritm:
( )
( )
( )
( )

u
y
b
b
u
x
y f
b
b
x x
u
y f
b
b
x x
C
f
l
f
l
f
l
l
M
C
fi
l
f
l
f
l
l
M f
l
i
fi
l
fi
l
C
fi
l
f
l
f
l
l
M f
l
i
fi
l
fi
l

1
1
2
1
2
3
2
2

unde b
x x
f
l i
fi
l
fi
l
i
n


|
.

`
,

|
.

`
,

exp

2
1
, relaiile fiind deduse prin
efectuarea derivrii corespunztoare asupra modelului.
se aplic procesului comanda
u u u
C S
+
unde
( ) ( )
( )
( )
u I e Pb u
b
f X y k e
S
t
C C
L
U
m
n t
+ + +

]
]
] 1
1
*
sgn
unde: I
V V
V V
e
e
1
1
0
*
,
,

>

'

, ( ) sgn
,
,
y
y
y


<

'

1 0
1 0
.
vectorul parametrilor

f se ajusteaz conform urmtorului algoritm:


Reele Neuronale i Logica Fuzzy n Automatizri Control Inteligent i Adaptiv
oricnd un element

fi
l

se utilizeaz


f i
l
t
n
C
f i
l
t
n
C
f i
l
t
n
C
f i
l
e p
u
d a c e p
u
e p
u

<

'


d a c

0
0 0
altfel se utilizeaz:
( ) ( )
( )
{
( )

f
t
n f f
t
n f
t
t
n f
t
n f
t
e p X dac M sau M e p X
P e p X M e p X

<
|
.

`
,


|
.

`
,

|
.

`
,

'

si 0
dac si < 0
unde
operatorul de proiecie se definete:
( )
{
( )
( )
P e p X e p X e p
X
t
n
t
n
t
n
f f
t
f


2
Algoritmul garanteaz aceleai proprieti, conform teoremei enunate n (3.2).
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.
Reele Neuronale i Logica Fuzzy n Automatizri Control Inteligent i Adaptiv

( )
( ) ( )
( )
( )
( )

sin
cos sin
cos
cos
cos
.
x x
x
g x
mlx x x
m m
l
m x
m m
x
m m
l
m x
m m
u
g
c
c
c
c
1 2
2
1
2
2
1 1
2
1
1
2
1
4
3
4
3
98
1

+
|
.

`
,

+
+

+
|
.

`
,

m / s accelerat ia gravita tional


m = 0.1 Kg masa axulu i mobil
m Kg m asa cruci orului
l = 0.5 m semi - lungimea a xului mobi l
2
C
Ca i referin se alege ( ) y t
m


30
sin , respectiv treapta y
m


30
. Algoritmul necesit nite date preliminare
privind restriciile: f g g
U U
L
, , :
( ) ( )
( ) ( )
f x x
g x
mlx x x
m m
l
m x
m m
x
x f x x
g x x
x
m m
l
m x
m m
g x x
C
C
U
C
C
U
1 2
1
2
2
1 1
2
1
2
2
2
2
1 2
1 2
1
2
1
1 2
4
3
98
0 025
11
2
3
0 05
11
15 78 0 0366
1
4
3
1
11
2
3
0 05
11
146
,
sin
cos sin
cos
.
.
.
.
.
. . ,
,
cos
cos
.
.
.
. ,

+
|
.

`
,

+
|
.

`
,

|
.

`
,


Unghiului fcut de ax cu pol I se alege domeniul: x
1
6

, rezultnd imediat:
( ) ( ) g x x g x x
L 1 2
2
1 2
6
11
2
3
005
11 6
112 ,
cos
.
.
.
cos
. ,
+
|
.

`
,

Forei u care acioneaz asupra cruciorului i impunem:


u 180
. Cum
( )
x x x X
1 1
2
2
2
1 2
+
/
dac
putem face X

6
atunci i x
1
6

. De asemenea o s avem x
2
6

. Parametrii
V k k M M
f g
, , , , ,
1 2

astfel nct restriciile asupra semnalului de control u, respectiv strii s fie ndeplinite, n concordan totodat cu
teorema care stabilete performanele sistemului de control,
( ) X t Y
V
m
+
|
.

`
,

2
1
2

min
,
( )
( )
( )
( ) ( )
( )
u t M y k
V
g X
M f X M g M y k
V
f m
n
L
f
U
g
U
f m
n
+ +
|
.

`
,

|
.

`
,

+ + + + + +
|
.

`
,

|
.

`
,

]
]
]
]
]
1 2 1 1 2
1
2
1
2

min min
Cum ym

30
i impunem X

6
, rezult

6 30
2
1 2
+
|
.

`
,

min
/
, adic
2 2
15
1 2
V

min
/
|
.

`
,

Reele Neuronale i Logica Fuzzy n Automatizri Control Inteligent i Adaptiv
Aleg
k k
1 2
2 1 ,
ceea ce conduce la un polinom cu rdcini n semiplanul stng, matricea
Q

]
]
]
10 0
0 10
,
pozitiv definit i simetric. Rezolvnd ecuaia Lyapunov rezult matricea Lyapunov:
P

]
]
]
15 5
5 5
pozitiv
definit a crei valoare minim este

min
. 293
, rezultnd V
|
.

`
,


min
.
2
2
15
0 267
2
. Coeficienii
, , M M
f g se
determin innd cont de mrginirea semnalului de comand pe care o impune algoritmul, rezultnd:
0 7 16 16 . , , . M M
f g . 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 .
Referin treapt unitate y
m


30
50 1 , ,
1 2
, Ts=0.01,
( ) X
t
0
60

]
]
]

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


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 Control Inteligent i Adaptiv
Referin sinusoidal ( ) y
m


30
50 1 sin t , ,
1 2
, Ts=0.01
x10=-pi/60; e= 9.2416e-005,V= 4.6366e-008
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 Control Inteligent i Adaptiv

x10=pi/60; e=1.7942e-004 , V= 4.1228e-008
Reele Neuronale i Logica Fuzzy n Automatizri Control Inteligent i Adaptiv


semnal de referin triunghiular e= -0.0012, V= 1.9207e-007
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 y
m


30
50 1 , ,
1 2
, Ts=0.01
( ) X
t
0
60

]
]
]

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


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 Control Inteligent i Adaptiv
Referin sinusoidal ( ) y
m


30
50 1 sin t , ,
1 2
, Ts=0.01
x10=-pi/60; e= 1.4566e-004,V= 1.2482e-007
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
s s

+
1
03 1 ( . )
care conduce la ecuaiile de stare
( )

.
x x
x x u
1 2
2 2
1
03

'

respectiv y x
1
. 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
s s

+
1
03 1 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
Reconsider procesul cu un coeficient de amplificare mai mare:
( )
( ) ( )
H s
s s

+
10
03 1 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 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 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);
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 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 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 Control Inteligent i Adaptiv
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=');
Reele Neuronale i Logica Fuzzy n Automatizri Control Inteligent i Adaptiv
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);


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 Control Inteligent i Adaptiv
%|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
Reele Neuronale i Logica Fuzzy n Automatizri Control Inteligent i Adaptiv
referinta ='sis_ref';
%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 Control Inteligent i Adaptiv
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)
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 Control Inteligent i Adaptiv
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/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 Control Inteligent i Adaptiv
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)];
Reele Neuronale i Logica Fuzzy n Automatizri 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);
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 Control Inteligent i Adaptiv
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);
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 Control Inteligent i Adaptiv
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)
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 Control Inteligent i Adaptiv
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)]';

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...............................................................................................................................................................................................1
.1 Modele fuzzy...............................................................................................................................................................................2
.2 Control fuzzy adaptiv indirect pentru sisteme neliniare.............................................................................................................4
.2.1 Control fuzzy adaptiv ..........................................................................................................................................................4
.2.2 Sinteza sistemelor fuzzy de control adaptiv indirect pe baza teoriei stabilitii a lui Lyapunov.........................................5
2.3 Etapele n proiectarea unui sistem fuzzy adaptiv indirect folosind primul tip de model fuzzy............................................10
2.4 Etapele n proiectarea unui sistem fuzzy adaptiv indirect folosind al doilea tip de model fuzzy.........................................12
........................................................................................................................................................................................................14
Capitolul 3: Control fuzzy adaptiv direct........................................................................................................................................14
3.1 Sinteza sistemelor fuzzy de control fuzzy adaptiv direct pe baza teoriei stabilitii a lui Lyapunov...................................14
3.2 Etapele n proiectarea unui sistem fuzzy adaptiv direct folosind primul tip de model fuzzy...............................................16
3.3 Etapele n proiectarea unui sistem de control fuzzy adaptiv direct folosind al doilea tip de model fuzzy...........................18
Capitolul 4: Simulri algoritmi.......................................................................................................................................................19
4.1 Aplicaie: Sistem de urmrire traiectorie pentru pendulul invers.........................................................................................19
4.2 Aplicaie pentru un sistem liniar...........................................................................................................................................34
Anexe de Programe de simulare.................................................................................................................................................41
CUPRINS........................................................................................................................................................................................59

You might also like