Sunteți pe pagina 1din 8

Sisteme de conducere fuzzy (UPT, 2011)

LUCRAREA DE LABORATOR NR. 1



DEZVOLTAREA ASISTAT DE CALCULATOR A SISTEMELOR DE CONDUCERE
FUZZY UTILIZND MEDIUL MATLAB & SIMULINK. FUNCII MATLAB UTILIZATE
PENTRU DEFINIREA FUNCIILOR DE APARTENEN. FUNCII MATLAB
UTILIZATE PENTRU FUZZIFICAREA INFORMAIEI FERME

A. OBIECTIVELE LUCRRII:
1. Cunoaterea aspectelor generale privind Fuzzy Logic Toolbox din cadrul mediului
Matlab.
2. nsuirea funciilor Matlab utilizate pentru definirea funciilor de apartenen (f.d.ap.).
3. nsuirea funciilor Matlab utilizate pentru fuzzificarea informaiei ferme.

B. CONSIDERAII PREGTITOARE:
1. Aspecte generale. Dezvoltarea regulatoarelor fuzzy / sistemelor de inferen fuzzy
utiliznd mediul Matlab.
n dezvoltarea sistemelor de reglare automat (SRA) cu regulatoare fuzzy (RG-F), utilizarea
calculatoarelor numerice reprezint o metod eficient utilizabil i la analiza comportrii SRA cu
RG-F. n acest context, rezultatele simulrii vor confirma valabilitatea:
structurii de conducere adoptate,
structurii regulatorului adoptat i valorilor optime pentru parametrii variabili ai regulatorului.
Nu se intenioneaz intrarea n detaliile tehnicilor generale de simulare a comportrii
sistemelor (simulare n timp real sau nu, simulare analogic, numeric sau / i combinat, erori de
simulare, medii de simulare .a.m.d.) pentru a cror nsuire studentul poate apela multe lucrri, mai
mult sau mai puin orientate pe un anumit domeniu i mai mult sau mai puin complete.
La dezvoltarea i simularea SRA cu RG-F ntreaga procedur va fi concentrat asupra
urmtoarelor dou aspecte:
dezvoltarea i simularea funcionalitii regulatorului fuzzy, care prezint particulariti specifice
remarcabile i, prin aceasta, necesit att o metodologie de dezvoltare ct i o tehnologie de
simulare specific;
la simularea SRA cu RG-F, simularea comportrii celor dou blocuri, RG-F i procesul condus
(PC), se trateaz n maniere diferite; prin interaciunea celor dou blocuri ntregul proces de
simulare devine ns unitar.
Simularea funcionalitii / comportrii RG-F este important ntruct ea constituie un suport
convenabil pentru dezvoltarea RG-F.
n acest context, n cadrul acestei lucrri i a lucrrilor urmtoare va fi prezentat pachetul de
programe de logic fuzzy, Fuzzy Logic Toolbox [1], din cadrul mediului Matlab [2]. Se vor prezenta
pe rnd toate funciile necesare pentru dezvoltarea i simularea funcionalitii / comportrii unui RG-
F multivariabil la intrare i ieire (RG-F-MIMO). n continuare, RG-F astfel dezvoltat poate fi inclus
n structura SRA cu RG-F iar comportarea ansamblului / sistemului va putea fi studiat tot prin
simulare.
Pentru simularea comportrii SRA cu RG-F, alturi de Fuzzy Logic Toolbox este necesar
ns i apelarea unei metode adecvate de simulare a comportrii procesului condus. n acest scop, n
cadrul lucrrilor se vor face referiri la mediul de simulare Simulink [3] ntruct acesta ofer facilitile
solicitate de simularea comportrii sistemelor cu neliniariti.
Relativ la simularea funcionalitii / comportrii RG-F, numit sistem de inferen fuzzy
(Fuzzy Inference System, FIS) n cadrul Fuzzy Logic Toolbox, funciile prezentate n continuare se
refer la i asigur urmtoarele:
definirea variabilelor lingvistice (VL) i a termenilor lingvistici (TL) afereni prin intermediul
f.d.ap.;
fuzzificarea informaiei ferme;
definirea bazei de reguli;
selectarea unei metode de defuzzificare (din cele disponibile) i efectuarea defuzzificrii;
lucrul efectiv cu pachetul de programe.
Sisteme de conducere fuzzy (UPT, 2011)
De la nceput se precizeaz faptul c exist dou moduri de lucru n cadrul Fuzzy Logic
Toolbox al mediului Matlab (FLT-Matlab), i anume:
a) realizarea RG-F al crui comportament se simuleaz utiliznd:
linia de comand Matlab, sau
crearea unui fiier cu extensia .m (de exemplu, program.m) i rularea acestuia din linia de
comand sau din meniul principal Matlab,
prin apelul funciilor specifice, definite i prezentate n [4], [5].
b) apelarea editorului grafic fuzzy care permite crearea fiierului corespunztor RG-F al crui
comportament se simuleaz cu ajutorul meniurilor aferente.
Folosirea editorului grafic prezint un avantaj net prin faptul c permite o definire rapid i
intuitiv a RG-F; apare ns dezavantajul unui consum mare de resurse hardware, fapt pentru care
configuraia minim recomandat este calculator PC-4x86-DX2-66, cu 8-16 MB memorie RAM.
n ambele moduri de lucru menionate RG-F creat se poate salva sub forma unei variabile n
formatul specific fis, care conine toate informaiile specifice aferente structurii RG-F (tip, intrri,
ieiri, baz de reguli, metod de defuzzificare).

2. Funcii Matlab utilizate pentru definirea funciilor de apartenen.
n cadrul acestui paragraf sunt prezentate principalele funcii Matlab prin care se pot defini
diferite tipuri de f.d.ap. care stau la dispoziia utilizatorului n cadrul FLT-Matlab.
a) F.d.ap. de tip triunghiular, fig.14.2.1-a.
Expresia analitic a acestei funcii este dat de relaia (14.2.1):
a b
1

x
0
2 6
1

x
0
a b
Fig. 14.2.1
4
c
x
max
x
min
8
0,6
0,3

0 , x < a,
xb
1 + , x [a, b), (14.2.1)
(x) = ba
xb
1 , x [b, c),
cb
0 , x c,
cu parametrii a, b, c care satisfac urmtoarea condiie:
a < b < c. (14.2.2)
Sintaxa pentru funcia Matlab care permite definirea unei f.d.ap. de tip triunghiular este
urmtoarea:
y = trimf(x, param), (14.2.3)
n care:
x vectorul coloan al mulimii de baz pe care se definete funcia de apartenen, de forma
x = (x
min
: x: x
max
)', x
min,max
marginea inferioar respectiv superioar a domeniului, x
pasul de explorare / calcul al valorilor f.d.ap. pe domeniul de baz (univers);
y vectorul coloan al valorilor funciei de apartenen;
param vectorul linie al parametrilor ce caracterizeaz TL (f.d.ap.):
param = [a b c]. (14.2.4)
Sisteme de conducere fuzzy (UPT, 2011)
Observaie: Pe parcursul ntregului paragraf, pentru vectorii x i y se pstreaz aceleai
semnificaii.
Exemplul 14.2.1: Urmtoarea secven de program scris n Matlab genereaz o f.d.ap. de tip
triunghiular:
x=(0:0.2:10)';
y=trimf(x,[3 4 5]);
plot(x,y)
Graficul funciei de apartenen generate este prezentat n fig.14.2.1-b.
Dac la apelarea funciei trimf se ncalc restricia dat de relaia (14.2.2) i se consider:
a = b = c, (14.2.5)
atunci se obine o f.d.ap. de tip singleton.
b) F.d.ap. de tip trapezoidal, fig.14.2.2-a.
a b
1

x
0
2 6
1

x
0
a b
Fig. 14.2.2
4
d
x
max
x
min
8
0,6
0,3
c

Expresia analitic a acestei funcii este de forma:
0 , x < a,
xb
1 + , x [a, b),
ba
(x) = 1 , x [b, c), (14.2.6)
xc
1 , x [c, d),
dc
0 , x d,
n care cei patru parametri satisfac condiia:
a < b c < d. (14.2.7)
Sintaxa pentru funcia Matlab aferent f.d.ap. de tip trapezoidal este de forma:
y = trapmf(x, param), (14.2.8)
n care:
param = [a b c d]. (14.2.9)
n cazul:
a = b i c = d, (14.2.10)
se obine o f.d.ap. de tip dreptunghiular, eficient utilizabil la TL afereni variabilelor de ieire din RG-
F (a se vedea partea I).
Exemplul 14.2.2: Un exemplu de apelare a f.d.ap. de tip trapezoidal este prezentat n
urmtoarea secven de program:
x=(0:0.2:10)';
y=trapmf(x,[2 3 7 9]);
plot(x,y)
n fig.14.2.2-b este prezentat graficul f.d.ap. generate.
c) F.d.ap. de tip clopot Gauss, fig.14.2.3.
Expresia analitic a acestei funcii este urmtoarea:

2
2
2
) (
) (
b
a x
e x

=
, (14.2.11)
Sisteme de conducere fuzzy (UPT, 2011)
n care a reprezint valoarea centrat, n raport cu care este valabil proprietatea:
(a) = 1; (14.2.12)
parametrul b > 0 reprezint dispersia funciei (distribuiei).
a
1

x
0
e
-1
2 2b
Fig. 14.2.3

Sintaxa unei f.d.ap. de tip clopot Gauss este dat de relaia:
y = gaussmf(x, param), (14.2.13)
n care vectorul celor doi parametri are expresia:
param = [b a], (14.2.14)
cu interpretarea conform fig.14.2.3 i relaiei (14.2.11).
Exemplul 14.2.3: Secvena de program care genereaz o f.d.ap. de tip (14.2.11) este:
x=(0:0.1:10)';
y=gaussmf(x,[1 5]);
plot(x, y)
n fig.14.2.3-b este prezentat graficul f.d.ap. generate.

Fig.14.2.3-b.

d) F.d.ap. de tip curb Gauss asimetric sau de tip combinaie de dou curbe Gauss.
Expresia analitic este prezentat pe dou cazuri n cele ce urmeaz.
cazul 1: a
1
<a
2
, fig.14.2.4-a:

> >

0 , , ,
] , ( , 1
,
) (
2 1 2
2
) (
2 1
1
2
) (
2
2
2
2
2
1
2
1
b b a x e
a a x
a x e
x
b
a x
b
a x

, (14.2.15)
cazul 2: a
1
a
2
, fig.14.2.4-b:
Sisteme de conducere fuzzy (UPT, 2011)

>

c x e
c x e
x
b
a x
b
a x
,
,
) (
2
2
2
2
2
1
2
1
2
) (
2
) (

, (14.2.16)
unde parametrul c (a
1
, a
2
) este obinut din condiia de continuitate a funciei din (14.2.16):
(c-a
1
)
2
b
2
2
=(c-a
2
)
2
b
1
2
. (14.2.17)
F.d.ap. obinut n acest al doilea caz este subnormal.
a
1
a
2
1

x
0
a
1 a
2
1

x
0
a b
Fig. 14.2.4
c

Sintaxa unei f.d.ap. de tip curb Gauss asimetric este:
y=gauss2mf(x,param), (14.2.18)
unde:
param=[b
1
a
1
b
2
a
2
]. (14.2.19)
Exemplul 14.2.4. Secvena de program care genereaz trei f.d.ap. de tip (14.2.15)-(14.2.16)
este:
x=(10:0.1:10)
y1=gauss2mf(x,[1 4 0.5 6]);
y2=gauss2mf(x,[1 5 0.5 5]);
y3=gauss2mf(x,[1 6 0.5 4]);
plot(x,[y1 y2 y3])
e) F.d.ap. de tip clopot generalizat (fig.14.2.5), cu expresia analitic:

b
a
c x
x
2
1
1
) (

+
=
, (14.2.20)
unde c este valoarea centrat, de obicei b>0, a i b caracterizeaz forma clopotului.
c
1

x
0
Fig. 14.2.5

Sintaxa funciei Matlab corespunztoare acestei f.d.ap. este:
y=gbellmf(x,param), param=[a b c]. (14.2.21)

Sisteme de conducere fuzzy (UPT, 2011)
Exemplul 14.2.5: Se execut urmtoarea secven de program:
x=(0:0.1:10);
y=gbellmf(x,[1 4 5]);
plot(x,y)
f) F.d.ap. de tip sigmoid (fig.14.2.6), cu expresia analitic:

) (
1
1
) (
c x a
e
x

+
=
, (14.2.22)
c
1

x
0
Fig. 14.2.6
a>0
0,5

unde pentru a>0 f.d.ap. este deschis ctre dreapta, iar pentru a<0 ctre stnga.
Sintaxa funciei Matlab aferente este:
y=sigmf(x,param), param=[a c]. (14.2.23)
Exemplul 14.2.6: Se ruleaz secvena de program Matlab:
x=(0:0.1:10);
y=sigmf(x,[1 5]);
plot(x,y)
Fuzzy Logic Toolbox din cadrul Matlab (FLT-Matlab) asigur definirea / generarea i a altor
tipuri de f.d.ap. utilizate mai rar n practica reglrii automate, prezentate mai jos mpreun cu funciile
Matlab care le genereaz:
- diferena a dou f.d.ap. de tip sigmoid: disgmf,
- f.d.ap. de tip spline de form : pimf,
- f.d.ap. de tip produs a dou f.d.ap de tip sigmoid: psigmf,
- f.d.ap. de tip spline de form S: smf,
- f.d.ap. de tip spline de form Z: zmf.

3. Funcii Matlab utilizate pentru fuzzificarea informaiei ferme.
Dup cum se cunoate din [4], [5], n procesul de fuzzificare a unei informaii ferme
(informaia de intrare ntr-un RG-F) este necesar parcurgerea urmtoarelor etape:
definirea mulimii de baz (universului discursului) care caracterizeaz variabila lingvistic (VL);
mulimea de baz definete domeniul de variaie a informaiei ferme;
definirea termenilor lingvistici (TL) prin care se dorete a fi caracterizat vag informaia ferm;
acest lucru prepune definirea f.d.ap. prin care se caracterizeaz TL;
determinare gradelor de apartenen a valorilor ferme la TL definii rezultnd n-uplul gradelor de
apartenen.
Principalele funcii Matlab care se utlizeaz n acest scop sunt urmtoarele.
a) Funcia addvar. Sintaxa funciei este urmtoarea:
fis2 = addvar(fis1, varTip, 'varNume', varDom). (14.3.1)
Funcia adaug o variabil lingvistic de tipul specificat prin parametrul varTip regulatorului
fuzzy (sistemului de inferen fuzzy) cu structura definit n prealabil de variabila fis1 n spaiul de
lucru Matlab. Rezultatul apelrii l constituie RG-F cu structura din variabila fis2.
Ceilali parametri din relaia (14.3.1) au urmtoarea semnificaie:
varNume definete numele VL;
varDom definete domeniul de baz al VL;
varTip poate lua dou valori:
Sisteme de conducere fuzzy (UPT, 2011)
'input' pentru VL de intrare,
'output' pentru VL de ieire.
VL sunt numerotate (indexate) automat n ordinea definirii lor, prima VL fiind ntotdeauna
recunoscut ca VL de intrare n RG-F; numerotarea VL de intrare i a VL de ieire se face separat.
b) Funcia rmvar. Sintaxa funciei este dat de relaia (14.3.2):
fis2 = rmvar(fis1, varTip, varIndex). (14.3.2)
Efectul apelrii funciei const n tergerea variabilei de tip varTip i index (numr) varIndex
din RG-F cu structura definit n prealabil de variabila fis1 n spaiul de lucru Matlab. Rezult RG-F
cu structura din variabila fis2.
c) Funcia addmf. Sintaxa funciei addmf este urmtoarea:
fis2=addmf(fis1,varTip,varIndex,'fdapNume','fdapTip',fdapParam).
(14.3.3)
Funcia adaug un nou TL variabilei lingvistice nominalizate prin parametrii varTip i
varIndex.
Ceilali parametri din relaia (14.3.3) au urmtoarea semnificaie:
fdapNume reprezint numele TL definit;
fdapTip reprezint tipul TL definit, adic una din tipurile de funcii prezentate n
paragraful anterior;
fdapParam reprezint parametrii pentru f.d.ap. specificat prin fdapTip.
d) Funcia rmmf. Sintaxa funciei este:
fis2 = rmmf(fis1, varTip, varIndex, 'termNume', termIndex). (14.3.4)
Efectul apelrii acestei funcii const n tergerea TL specificat prin numele termNume i
indexul termIndex din cadrul VL specificate prin varTip i varIndex.
e) Funcia plotmf. Apelnd aceast funcie Matlab vor fi afiate f.d.ap. ale tuturor TL afereni VL cu
tipul varTip i indexul varIndex din variabila (care caracterizeaz structura RG-F) fis1 definit
n prealabil i adus n spaiul de lucru Matlab. Sintaxa funciei este urmtoarea:
plotmf(fis1, varTip, varIndex). (14.3.5)
Exemplul 14.3.1: Pentru ilustrarea utilizrii funciilor enumerate, se consider modulul de
defuzzificare al unui RG-F a temperaturii, care admite ca intrare semnalul temperatur creia i se
asociaz VL Temperatur i pentru care se definesc 5 TL.
n cele ce urmeaz este prezentat programul surs Matlab care genereaz cei 5 TL denumii
{TFJ, TJ, TM, TI, TFI} asociai VL de intrare Temperatur.
a=newfis('fuzzificare');
a=addvar(a,'input','Temperatura',[0 1]);
a=addmf(a,'input',1,'TFJ','trapmf',[0 0 0.1 0.3]);
a=addmf(a,'input',1,'TJ','trimf',[0.1 0.3 0.5]);
a=addmf(a,'input',1,'TM','trimf',[0.3 0.5 0.7]);
a=addmf(a,'input',1,'TI','trimf',[0.5 0.7 0.9]);
a=addmf(a,'input',1,'TFI','trapmf',[0.7 0.9 1 1]);
plotmf(a,'input',1)
Rezultatul rulrii acestui fiier din linia de comand Matlab este prezentat n fig.14.3.1 sub
forma graficelor f.d.ap. aferente tuturor TL definii.
Sisteme de conducere fuzzy (UPT, 2011)
T F J
T J T M T I T F I
0
0 , 5
1
T e m p e r a t u r a
0 , 1 0 , 3 0 , 4 0 , 6 0 , 9
F I G . 1 4 . 3 . 1

Funcia newfis utilizat n program va fi prezentat i studiat n lucrarea nr. 3.

C. TEMATICA LUCRRII:
1. Pentru exemplele 14.2.1 14.2.6 se execut secvenele de program Matlab prezentate. Se
studiaz efectul modificrii parametrilor funciilor Matlab asupra formei f.d.ap. considerate.
2. Se studiaz funciile Matlab disgmf, pimf, psigmf, smf i zmf n aceeai manier ca la
punctul anterior prin generarea unor secvene de program Matlab corespunztoare.
3. Pentru exemplul 14.3.1 se execut secvena de program Matlab prezentat. Se studiaz
efectul modificrii parametrilor funciilor Matlab asupra formei f.d.ap. aferente TL definii.
4. Se reia studiul exemplului 14.3.1 n sensul punctului anterior folosind:
f.d.ap. de sigmoid cele dou f.d.ap. aferente TL TFJ i TFI i
f.d.ap. de tip curb Gauss pentru ceilali trei TL ai VL temperatur.

D. BIBLIOGRAFIE:
[1] Matlab: Fuzzy Logic Toolbox, MathWorks Inc., Natick, MA, 1998.
[2] Matlab: The Language of Tehcnical Computing, Using Matlab Graphics, Version 6, The
MathWorks Inc., Natick, MA, 2000.
[3] Simulink: Dynamic System Simulation for Matlab, Using Simulink, Version 4, The MathWorks
Inc., Natick, MA, 2000.
[4] Preitl, St. i R.-E. Precup: Introducere n conducerea FUZZY a proceselor, Editura Tehnic,
Bucureti, 1997.
[5] Precup, R.-E. i St. Preitl: Fuzzy Controllers, Editura Orizonturi Universitare, Timioara, 1999.
[6] Precup, R.-E.: Matematici asistate de calculator. Algoritmuri, Editura Orizonturi Universitare,
Timioara, 2007.

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