FUNCII REFERITOARE LA VARIABILELE DE TIP FIS. FUNCIA UTILIZAT PENTRU VIZUALIZAREA CARACTERISTICILOR STATICE GENERALIZATE ALE REGULATOARELOR FUZZY
A. OBIECTIVELE LUCRRII: 1. nsuirea funciilor Matlab utilizate n operarea cu fiierele de tip fis. 2. nsuirea funciei Matlab utilizate pentru vizualizarea caracteristicilor statice generalizate ale regulatoarelor fuzzy (RG-F).
B. CONSIDERAII PREGTITOARE: 1. Funcii Matlab referitoare la variabilele de tip fis. Variabilele de tip fis au menirea de a caracteriza complet i eventual modifica structura, parametrii i proprietile regulatoarelor fuzzy (sistemelor de inferen fuzzy). Pentru aceste fiiere sunt disponibile apte funcii [1]: getfis, newfis, plotfis, readfis, setfis, writefis. a) Funcia getfis. Sintaxa funciei este urmtoarea: out = getfis(fis), (14.6.1) iar efectul const n returnarea unei liste a proprietilor regulatorului fuzzy definit prin variabila fis. O apelare de forma: out = getfis(fis,'fisProp') (14.6.2) returneaz valoarea curent a proprietilor, denumite 'fisProp'. O alt modalitate de apelare a funciei getfis este: out = getfis(fis, 'varTip', varIndex); (14.6.3) n acest caz se returneaz o list a proprietilor variabilei lingvistice specificate prin varTip i varIndex. b) Funcia newfis. Sintaxa funciei este urmtoarea: fis = newfis(fisNume). (14.6.4) Funcia creeaz implicit o variabil fis corespunztore unui RG-F de tip Mamdani cu numele fisNume. Dac funcia newfis se apeleaz n forma: fis = newfis(fisNume, fisTip), (14.6.5) atunci se creeaz o variabil fis corespunztore unui RG-F de tipul specificat prin fisTip. Acesta poate lua valorile 'Mamdani' respectiv 'Sugeno' i va fi selectat n funcie de tipul de RG-F definit. c) Funcia plotfis. Are menirea de a reprezenta grafic caracteristica static (generalizat) a RG-F. Apelarea funciei n forma: plotfis(fismat) (14.6.6) creeaz tocmai caracteristica static generalizat intrare-ieire pentru RG-F asociat variabilei de tip fis cu numele fismat obinut folosind funcia readfis sau aflat n spaiul de lucru Matlab. d) Funcia readfis. Sintaxa funciei este dat de relaia (14.6.7): fismat = readfis('fisNume'). (14.6.7) Prin apelarea funciei, se creeaz n spaiul de lucru Matlab o variabil fismat asociat fiierului de tip fis cu numele 'fisNume'. Matricea creat este utilizabil ntr-o sesiune Matlab, informaia pierzndu-se la nchiderea sesiunii de lucru. e) Funcia setfis. n forma sa cea mai simpl, sintaxa acestei funcii este dat de relaia: fis2 = setfis(fis1, 'fisPropNume', nouPropVal). (14.6.8) Funcia genereaz o variabil de tip fis cu numele fis2. Variabila fis 2 are aceeai structur cu cea aferent variabilei fis1 definite n prealabil, cu excepia proprietilor avnd numele 'fisPropNume', care se seteaz la noile valori din nouPropVal. Trebuie remarcat c o apelare Sisteme de conducere fuzzy (UPT, 2011) de forma (14.6.8) modific proprietatea purtnd numele fisPropNume pentru toate variabilele lingvistice aferente RG-F. O apelare n forma (14.6.9) a funciei: fis2 = setfis(fis1, 'varTip', varIndex, 'fisPropNume', nouPropVal), (14.6.9) genereaz o variabil fis2 care este identic variabilei iniiale fis1 cu excepia proprietii cu numele 'varPopNume', care va lua valoarea nouPropVal pentru variabila lingvistic specificat prin numele 'varTip' i indexul varIndex. O alt apelare a funciei setfis este de forma: fis2=setfis(fis1,'varTip',varIndex,'fdap',fdapIndex,'fdapPropNume', ...nouPropVal), (14.6.10) i realizeaz doar modificarea proprietilor unui termen lingvistic (TL) specificat prin numele 'fdap' i indexul fdapIndex, TL fiind asociat variabilei lingvistice de tip 'varTip' i index varIndex. f) Funcia showfis. Modul de apelare a acestei funcii este urmtorul: showfis(fismat). (14.6.11) Prin (14.6.11) se asigur afiarea unei versiuni text pentru RG-F asociat variabilei fismat. g) Funcia writefis. Funcia se apeleaz sub forma (14.6.12): writefis(fismat, 'fisNume') (14.6.12) i asigur salvarea pe disc a variabilei fismat aferente unui RG-F aflate n spaiul de lucru Matlab n fiierul cu numele fisNume.fis. Nu este necesar specificarea extensiei fis. h) Funcia evalfis. Servete la calculul comenzii elaborate de RG-F pentru un set de intrri ferme. Funcia are sintaxa: ieire=evalfis(intrare, fis1). (14.6.13) O astfel de apelare returneaz valoarea comenzii (VL de ieire) elaborate de RG-F cu structura definit n variabila fis1, pentru valorile ferme ale VL de intrare specificate n matricea intrare. Funcia este util n rularea pas cu pas n verificarea funcionrii RG-F.
2. Funcia Matlab utilizat pentru vizualizarea caracteristicii statice generalizate ale regulatoarelor fuzzy (RG-F). n acest scop se utilizeaz funcia gensurf. Sunt utilizate trei variante de sintax [2], [3]: a) gensurf(fis1) vizualizeaz caracteristica static (CS) generalizat aferent RG-F definit anterior n variabila fis1. Se iau n considerare primele dou VL de intrare i prima VL de ieire; b) gensurf(fis1, intrri, ieire) are acelai efect, ns VL de intrare (una sau dou) trebuie specificat / specificate n vectorul intrri, iar VL de ieire trebuie specificat n scalarul ieire; c) [x,y,z]=gensurf( _ _ _ ) returneaz valorile variabilelor care definesc CS generalizat ns nu vizualizeaz CS.
C. TEMATICA LUCRRII: 1. Se execut urmtoarea secven de program Matlab pentru elaborarea comenzii (ferme) de ctre RG-F definite la exemplele 14.4.1 i 14.4.2 din lucrarea anterioar: a=readfis(Pendul); evalfis([-2 1],a) pause evalfis([2 1],a) pause b=readfis(fuzzif&inf&br); ieire1=evalfis([15],b) ieire2=evalfis([25],b) Se efectueaz calcule ale comenzilor ferme i pentru alte valori ferme ale intrrii / intrrilor. Sisteme de conducere fuzzy (UPT, 2011) 2. Se execut urmtoarea secven de program Matlab pentru afiarea CS generalizate aferente RG-F definite la exemplele 14.4.1 i 14.4.2: a=readfis(Pendul); gensurf(a) pause b=readfis(fuzzif&inf&br); gensurf(b)
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.