Documente Academic
Documente Profesional
Documente Cultură
mg
a
mg
b
l
Fig.14.10.1
Relaia (14.10.1) reprezint o particularizare a MM-II general al pendulului invers, care va fi
prezentat n lucrarea nr. 6. n aceeai lucrare vor fi dezvoltate i implementate regulatoare fuzzy
destinate conducerii sistemului n timp real pe o instalaie de laborator.
Alegnd ca variabile de stare poziia unghiular x
1
= i viteza unghiular x
2
=, se obine
urmtorul MM-ISI neliniar aferent procesului:
x
1
= x
2
, (14.10.2)
g 1
x
2
= sin x
1
u, (14.10.3)
l m l
2
y = x
1
. (14.10.4)
Acceptnd ipoteza deviaiei mici a poziiei curente a pendulului de la poziia nominal
(vertical) caracterizat de
0
= 0 (|| 3
0
), se poate scrie:
sin x
1
x
1
(x
1
= ), (14.10.5)
i, n consecin, rezult urmtoarele ecuaii de stare liniarizate aferente procesului:
x
1
= x
2
, (14.10.6)
g 1
x
2
= x
1
u, (14.10.7)
l m l
2
n continuare, se consider c x
1
este msurat n grade (
0
) i, corespunztor, x
2
este msurat
n grade pe secund (
0
/sec); n ipoteza c dimensiunile "mecanice" ale pendulului se iau conform
relaiei (14.10.8):
180
l = g, m = , (14.10.8)
g
2
se obin ecuaiile de stare (14.10.9) i (14.10.10):
x
1
= x
2
, (14.10.9)
x
2
= x
1
u. (14.10.10)
Observaie: Alegerea dimensiunilor conform relaiei (14.10.8) are doar menirea de a
simplifica scrierea n continuare a MM-ISI prin omiterea unor coeficieni neunitari.
Sisteme de conducere fuzzy (UPT, 2011)
n continuare, MM-ISI cu timp discret corespunztor MM-ISI cu timp continuu (14.10.9) i
(14.10.10), obinut prin discretizare prin metoda dreptunghiurilor ntrziate cu o perioad de
eantionare T
e
= 1 sec, obine forma:
x
1,k+1
= x
1,k
+ x
2,k
, (14.10.11)
x
2,k+1
= x
1,k
+ x
2,k
- u
k
, (14.10.12)
y
k
= x
1,k
; (14.10.13)
cu k N se contorizeaz momentul de timp curent t
k
= kT
e
.
RG-F destinat conducerii procesului astfel modelat (relaiile (14.10.11) ... (14.10.13)) are dou
VL de intrare (poziia unghiular x
1
i viteza unghiular x
2
) i o VL de ieire (comanda u).
Pentru poziia x
1
se definesc trei TL (N, Z, P), cu reprezentarea grafic a f.d.ap. dat n
fig.14.10.3; domeniul de baz / universul discursului pentru intrarea x
1
= este [3;3]
0
.
0
-2 3 2 - 3
N P Z
x1
x
1
Fi g .
14.10.3.
Pentru viteza unghiular x
2
se definesc de asemenea trei TL (N, Z, P), cu f.d.ap. conform
fig.14.10.4; domeniul de baz / universul discursului pentru intrarea x
2
= se accept intervalul [6;6]
0
/sec.
0
-4 6 4 -6
N P Z
x2
x
2
Fig.
14.10.4.
Variabilei lingvistice de ieire, comanda u, i se asociaz apte TL (NVB, NB, N, Z, P, PB,
PVB); formele f.d.ap. i domeniul de baz / universul discursului sunt prezentate n fig.14.10.5.
0
-10 20 10 -20
N P Z
u
u
Fig.
PB PVB NB NVB
14.10.5.
Semnificaia termenilor lingvistici prezentai anterior este cea frecvent utilizat.
Baza de reguli pentru RG-F va fi alctuit din 9 reguli prezentate sintetic n tabelul 14.10.1.
Tabelul 14.10.1
x
1
\ x
2
P Z N
Cod
reg.
P PB P Z R
1+
Sisteme de conducere fuzzy (UPT, 2011)
Z P Z N R
2+
N Z N NB R
3+
Cod
reg. R
-1
R
-2
R
-3
Remarc: Se observ c baza de reguli nu apeleaz sub nici o form TL PVB i NVB. Aceti
termeni lingvistici au fost introdui doar pentru a elimina problemele de capt care ar apare la
defuzzificare prin metoda centrului de greutate [2].
Revenind la subiectul acestei lucrri, n cele ce urmeaz va fi prezentat modalitatea de
definire a bazei de reguli n toate formatele menionate. Sistemul are dou intrri x
1
= poziia
pendulului i x
2
= viteza unghiular, o ieire u = comanda i o baz de reguli compus din 9
reguli.
Programul aferent este prezentat n continuare; pentru parametrul regFormat s-a utilizat
reprezentarea 'verbose', iar limba utilizat este engleza ('english').
a=newfis('Pendul');
a=addvar(a,'input','x1',[-3 3]);
a=addmf(a,'input',1,'N','trapmf',[-3 -3 -2 0]);
a=addmf(a,'input',1,'Z','trimf',[-2 0 2]);
a=addmf(a,'input',1,'P','trapmf',[0 2 3 3]);
a=addvar(a,'input','x2',[-6 6]);
a=addmf(a,'input',2,'N','trapmf',[-6 -6 -5 0]);
a=addmf(a,'input',2,'Z','trimf',[-5 0 5]);
a=addmf(a,'input',2,'P','trapmf',[0 5 6 6]);
a=addvar(a,'output','u',[-25 25]);
a=addmf(a,'output',1,'NVB','trapmf',[-25 -25 -24 -16]);
a=addmf(a,'output',1,'NB','trimf',[-20 -16 -8]);
a=addmf(a,'output',1,'N','trimf',[-16 -8 0]);
a=addmf(a,'output',1,'Z','trimf',[-8 0 8]);
a=addmf(a,'output',1,'P','trimf',[0 8 16]);
a=addmf(a,'output',1,'PB','trimf',[8 16 20]);
a=addmf(a,'output',1,'PVB','trapmf',[16 24 25 25]);
regLista=['If(x1 is P)and(x2 is P)then(u is PB)';
'If(x1 is P)and(x2 is Z)then(u is P)';
'If(x1 is P)and(x2 is N)then(u is Z)';
'If(x1 is Z)and(x2 is P)then(u is P)';
'If(x1 is Z)and(x2 is Z)then(u is Z)';
'If(x1 is Z)and(x2 is N)then(u is N)';
'If(x1 is N)and(x2 is P)then(u is Z)';
'If(x1 is N)and(x2 is Z)then(u is N)';
'If(x1 is N)and(x2 is N)then(u is NB)'];
a=addrule(a,regLista);
writefis(a,'Pendul');
Dac se utilizeaz reprezentarea n forma indexat a bazei de reguli, se execut:
regIndex=1:1:9;
showrule(a,regIndex,indexed,english)
i se obine:
3 3, 6 (1) : 1
3 2, 5 (1) : 1
3 1, 4 (1) : 1
2 3, 5 (1) : 1
2 2, 4 (1) : 1
2 1, 3 (1) : 1
1 3, 4 (1) : 1
1 2, 3 (1) : 1
Sisteme de conducere fuzzy (UPT, 2011)
1 1, 2 (1) : 1
Primele dou coloane ale listei de mai sus sunt asociate celor dou intrri ale sistemului, a
treia coloan este asociat ieirii, urmtoarea coloan indic gradul de importan a fiecrei reguli (cu
valoarea implicit 1), iar ultima coloan d tipul operatorului cu care se evalueaz fiecare regul (n
acest caz este vorba despre operatorul I corespunztor metodei de inferen MAX-MIN utilizate).
Dac se utilizeaz forma simbolic de reprezentare a aceleiai baze de reguli (varianta
'symbolic'), se execut:
regIndex=1:1:9;
showrule(a,regIndex,symbolic,english)
i se obine:
(x1==P) & (x2==P) (u=PB) (1)
(x1==P) & (x2==Z) (u=P) (1)
(x1==P) & (x2==N) (u=Z) (1)
(x1==Z) & (x2==P) (u=P) (1)
(x1==Z) & (x2==Z) (u=Z) (1)
(x1==Z) & (x2==N) (u=N) (1)
(x1==N) & (x2==P) (u=Z) (1)
(x1==N) & (x2==Z) (u=N) (1)
(x1==N) & (x2==N) (u=NB) (1)
2. Funcia Matlab utilizat pentru operaia de defuzzificare.
Pentru operaia de defuzzificare din cadrul unui RG-F n Fuzzy Logic Toolbox din cadrul
Matlab se dispune de funcia defuzz cu urmtoarea sintax:
y = defuzz(x,fdap, tip), (14.5.1)
n care:
x vectorul coloan al variabilei independente pe care este definit variabila lingvistic (de
ieire);
y valoarea ferm (scalar) obinut n urma defuzzificrii;
fdap vectorul coloan al valorilor f.d.ap. aferente variabilei lingvistice supuse defuzzificrii
(comanda / ieirea);
tip parametru prin care se specific metoda de defuzzificare aleas (a se vedea partea I a
lucrrii).
Parametrul tip poate lua valorile:
- 'centroid' la utilizarea metodei centrului de greutate;
- 'mom' la utilizarea metodei maximelor mediate;
- 'som' la utilizarea metodei eantionului minim;
- 'lom' la utilizarea metodei eantionului maxim.
Parametrul tip poate lua i alte valori definite de utilizator; valoarea sa va indica numele
funciei care efectueaz operaia de defuzzificare.
C. TEMATICA LUCRRII:
1. Pentru exemplele 14.3.1 14.3.3 se execut secvenele de program Matlab prezentate. Se
studiaz i modificrile bazelor de reguli prin modificrile corespunztoare n programe.
2. Se execut urmtoarea secven de program Matlab pentru calculul comenzii ferme
elaborate de RG-F presupunnd c
x=0:0.1:1;
fdap1=trapmf(x,[0 0 10 30]);
y1=defuzz(x,fdap1,centroid)
fdap2=trimf(x,[10 30 50]);
y2=defuzz(x,fdap2,centroid)
3. Pentru punctul anterior se studiaz efectul modificrii metodei de defuzzificare asupra
valorii rezultatului (comenzii ferme). Spre exemplu, se execut urmtoarea secven de program
Sisteme de conducere fuzzy (UPT, 2011)
referitoare la selectarea altei metode de defuzzificare aferente RG-F avnd structura salvat n fiierul
fisier.fis:
c=readfis(fisier.fis)
c=setfis(c,defuzzMethod,mom);
writefis(c,fisier.fis);
getfis(c)
Procednd mai simplu, un efect similar se obine nlocuind a treia linie de program cu:
c.defuzzMethod=mom;
Important: Se poate proceda similar ultimelor linii de program Matlab i n cazul
modificrii oricrei alte proprieti a RG-F (sistemului de inferen fuzzy), cu diferene inerente de
la o versiune a mediului Matlab la alta. n lucrarea urmtoare vor fi prezentate funciile legate de
variabilele de tip fis, prin intermediul crora pot fi modificate proprietile menionate.
Sunt create i alte secvene de program care s permit studiul tuturor metodelor de
defuzzificare cunoscute.
D. BIBLIOGRAFIE:
[1] Matlab: Fuzzy Logic Toolbox, MathWorks Inc., Natick, MA, 1998.
[2] Preitl, St. i R.-E. Precup: Introducere n conducerea FUZZY a proceselor, Editura Tehnic,
Bucureti, 1997.
[3] Precup, R.-E. i St. Preitl: Fuzzy Controllers, Editura Orizonturi Universitare, Timioara, 1999.
[4] Precup, R.-E.: Matematici asistate de calculator. Algoritmuri, Editura Orizonturi Universitare,
Timioara, 2007.