Documente Academic
Documente Profesional
Documente Cultură
SCF Lucrarea1
SCF Lucrarea1
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.