scf lucrarea1

8
Sisteme de conducere fuzzy (UPT, 2011) LUCRAREA DE LABORATOR NR. 1 DEZVOLTAREA ASISTATĂ DE CALCULATOR A SISTEMELOR DE CONDUCERE FUZZY UTILIZÂND MEDIUL MATLAB & SIMULINK. FUNCŢII MATLAB UTILIZATE PENTRU DEFINIREA FUNCŢIILOR DE APARTENENŢĂ. FUNCŢII MATLAB UTILIZATE PENTRU FUZZIFICAREA INFORMAŢIEI FERME A. OBIECTIVELE LUCRĂRII: 1. Cunoaşterea aspectelor generale privind Fuzzy Logic Toolbox din cadrul mediului Matlab. 2. Însuşirea funcţiilor Matlab utilizate pentru definirea funcţiilor de apartenenţă (f.d.ap.). 3. Însuşirea funcţiilor Matlab utilizate pentru fuzzificarea informaţiei ferme. B. CONSIDERAŢII PREGĂTITOARE: 1. Aspecte generale. Dezvoltarea regulatoarelor fuzzy / sistemelor de inferenţă fuzzy utilizând 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 comportării SRA cu RG-F. În acest context, rezultatele simulării vor confirma valabilitatea: structurii de conducere adoptate, structurii regulatorului adoptat şi valorilor optime pentru parametrii variabili ai regulatorului. Nu se intenţionează intrarea în detaliile tehnicilor generale de simulare a comportării sistemelor (simulare în timp real sau nu, simulare analogică, numerică sau / şi combinată, erori de simulare, medii de simulare ş.a.m.d.) pentru a căror însuşire studentul poate apela multe lucrări, mai mult sau mai puţin orientate pe un anumit domeniu şi mai mult sau mai puţin complete. La dezvoltarea şi simularea SRA cu RG-F întreaga procedură va fi concentrată asupra următoarelor două aspecte: dezvoltarea şi simularea funcţionalităţii regulatorului fuzzy, care prezintă particularităţi specifice remarcabile şi, prin aceasta, necesită atât o metodologie de dezvoltare cât şi o tehnologie de simulare specifică; la simularea SRA cu RG-F, simularea comportării celor două blocuri, RG-F şi procesul condus (PC), se tratează în maniere diferite; prin interacţiunea celor două blocuri întregul proces de simulare devine însă unitar. Simularea funcţionalităţii / comportării RG-F este importantă întrucât ea constituie un suport convenabil pentru dezvoltarea RG-F. În acest context, în cadrul acestei lucrări şi a lucrărilor următoare va fi prezentat pachetul de programe de logică fuzzy, Fuzzy Logic Toolbox [1], din cadrul mediului Matlab [2]. Se vor prezenta pe rând toate funcţiile necesare pentru dezvoltarea şi simularea funcţionalităţii / comportării unui RG- F multivariabil la intrare şi ieşire (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 comportării SRA cu RG-F, alături de Fuzzy Logic Toolbox este necesară însă şi apelarea unei metode adecvate de simulare a comportării procesului condus. În acest scop, în cadrul lucrărilor se vor face referiri la mediul de simulare Simulink [3] întrucât acesta oferă facilităţile solicitate de simularea comportării sistemelor cu neliniarităţi. Relativ la simularea funcţionalităţii / comportării RG-F, numit sistem de inferenţă fuzzy (Fuzzy Inference System, FIS) în cadrul Fuzzy Logic Toolbox, funcţiile prezentate în continuare se referă la şi asigură următoarele: definirea variabilelor lingvistice (VL) şi a termenilor lingvistici (TL) aferenţi prin intermediul f.d.ap.; fuzzificarea informaţiei ferme; definirea bazei de reguli; selectarea unei metode de defuzzificare (din cele disponibile) şi efectuarea defuzzificării; lucrul efectiv cu pachetul de programe.

Upload: patricia-beatrice

Post on 28-Dec-2015

17 views

Category:

Documents


1 download

DESCRIPTION

SCF Lucrarea1

TRANSCRIPT

Page 1: SCF Lucrarea1

Sisteme de conducere fuzzy (UPT, 2011)

LUCRAREA DE LABORATOR NR. 1

DEZVOLTAREA ASISTATĂ DE CALCULATOR A SISTEMELOR DE CONDUCERE FUZZY UTILIZÂND MEDIUL MATLAB & SIMULINK. FUNCŢII MATLAB UTILIZATE

PENTRU DEFINIREA FUNCŢIILOR DE APARTENENŢĂ. FUNCŢII MATLAB UTILIZATE PENTRU FUZZIFICAREA INFORMAŢIEI FERME

A. OBIECTIVELE LUCRĂRII:

1. Cunoaşterea aspectelor generale privind Fuzzy Logic Toolbox din cadrul mediului Matlab.

2. Însuşirea funcţiilor Matlab utilizate pentru definirea funcţiilor de apartenenţă (f.d.ap.). 3. Însuşirea funcţiilor Matlab utilizate pentru fuzzificarea informaţiei ferme.

B. CONSIDERAŢII PREGĂTITOARE: 1. Aspecte generale. Dezvoltarea regulatoarelor fuzzy / sistemelor de inferenţă fuzzy

utilizând 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 comportării SRA cu RG-F. În acest context, rezultatele simulării vor confirma valabilitatea: • structurii de conducere adoptate, • structurii regulatorului adoptat şi valorilor optime pentru parametrii variabili ai regulatorului. Nu se intenţionează intrarea în detaliile tehnicilor generale de simulare a comportării sistemelor (simulare în timp real sau nu, simulare analogică, numerică sau / şi combinată, erori de simulare, medii de simulare ş.a.m.d.) pentru a căror însuşire studentul poate apela multe lucrări, mai mult sau mai puţin orientate pe un anumit domeniu şi mai mult sau mai puţin complete. La dezvoltarea şi simularea SRA cu RG-F întreaga procedură va fi concentrată asupra următoarelor două aspecte: • dezvoltarea şi simularea funcţionalităţii regulatorului fuzzy, care prezintă particularităţi specifice

remarcabile şi, prin aceasta, necesită atât o metodologie de dezvoltare cât şi o tehnologie de simulare specifică;

• la simularea SRA cu RG-F, simularea comportării celor două blocuri, RG-F şi procesul condus (PC), se tratează în maniere diferite; prin interacţiunea celor două blocuri întregul proces de simulare devine însă unitar.

Simularea funcţionalităţii / comportării RG-F este importantă întrucât ea constituie un suport convenabil pentru dezvoltarea RG-F. În acest context, în cadrul acestei lucrări şi a lucrărilor următoare va fi prezentat pachetul de programe de logică fuzzy, Fuzzy Logic Toolbox [1], din cadrul mediului Matlab [2]. Se vor prezenta pe rând toate funcţiile necesare pentru dezvoltarea şi simularea funcţionalităţii / comportării unui RG-F multivariabil la intrare şi ieşire (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 comportării SRA cu RG-F, alături de Fuzzy Logic Toolbox este necesară însă şi apelarea unei metode adecvate de simulare a comportării procesului condus. În acest scop, în cadrul lucrărilor se vor face referiri la mediul de simulare Simulink [3] întrucât acesta oferă facilităţile solicitate de simularea comportării sistemelor cu neliniarităţi. Relativ la simularea funcţionalităţii / comportării RG-F, numit sistem de inferenţă fuzzy (Fuzzy Inference System, FIS) în cadrul Fuzzy Logic Toolbox, funcţiile prezentate în continuare se referă la şi asigură următoarele: • definirea variabilelor lingvistice (VL) şi a termenilor lingvistici (TL) aferenţi prin intermediul

f.d.ap.; • fuzzificarea informaţiei ferme; • definirea bazei de reguli; • selectarea unei metode de defuzzificare (din cele disponibile) şi efectuarea defuzzificării; • lucrul efectiv cu pachetul de programe.

Page 2: SCF Lucrarea1

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 cărui comportament se simulează utilizând: • linia de comandă Matlab, sau • crearea unui fişier cu extensia .m (de exemplu, program.m) şi rularea acestuia din linia de

comandă sau din meniul principal Matlab, prin apelul funcţiilor specifice, definite şi prezentate în [4], [5]. b) apelarea editorului grafic fuzzy care permite crearea fişierului corespunzător RG-F al cărui 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 configuraţia minimă recomandată este calculator PC-4x86-DX2-66, cu 8-16 MB memorie RAM. În ambele moduri de lucru menţionate RG-F creat se poate salva sub forma unei variabile în formatul specific fis, care conţine toate informaţiile specifice aferente structurii RG-F (tip, intrări, ieşiri, bază de reguli, metodă de defuzzificare). 2. Funcţii Matlab utilizate pentru definirea funcţiilor de apartenenţă. În cadrul acestui paragraf sunt prezentate principalele funcţii Matlab prin care se pot defini diferite tipuri de f.d.ap. care stau la dispoziţia utilizatorului în cadrul FLT-Matlab. a) F.d.ap. de tip triunghiular, fig.14.2.1-a. Expresia analitică a acestei funcţii este dată de relaţia (14.2.1):

a b

1

µ

x02 6

1

µ

x0

a b Fig. 14.2.1

4c xmaxxmin

8

0,6

0,3

⎧ 0 , x < a, ⎪ x–b ⎪ 1 + ——— , x ∈ [a, b), (14.2.1) µ(x) = ⎨ b–a ⎪ x–b ⎪ 1 – ——— , x ∈ [b, c), ⎪ c–b ⎩ 0 , x ≥ c, cu parametrii a, b, c care satisfac următoarea condiţie: a < b < c. (14.2.2) Sintaxa pentru funcţia Matlab care permite definirea unei f.d.ap. de tip triunghiular este următoarea: y = trimf(x, param), (14.2.3) în care: x – vectorul coloană al mulţimii de bază pe care se defineşte funcţia de apartenenţă, de forma

x = (xmin: ∆x: xmax)', xmin,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 funcţiei de apartenenţă; param – vectorul linie al parametrilor ce caracterizează TL (f.d.ap.): param = [a b c]. (14.2.4)

Page 3: SCF Lucrarea1

Sisteme de conducere fuzzy (UPT, 2011)

Observaţie: Pe parcursul întregului paragraf, pentru vectorii x şi y se păstrează aceleaşi semnificaţii. Exemplul 14.2.1: Următoarea 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 funcţiei de apartenenţă generate este prezentat în fig.14.2.1-b. Dacă la apelarea funcţiei trimf se încalcă restricţia dată de relaţia (14.2.2) şi se consideră: a = b = c, (14.2.5) atunci se obţine o f.d.ap. de tip singleton. b) F.d.ap. de tip trapezoidal, fig.14.2.2-a.

a b

1

µ

x02 6

1

µ

x0

a b Fig. 14.2.2

4d xmaxxmin

8

0,6

0,3

c

Expresia analitică a acestei funcţii este de forma: ⎧ 0 , x < a, ⎪ x–b ⎪ 1 + ——— , x ∈ [a, b), ⎪ b–a µ(x) = ⎨ 1 , x ∈ [b, c), (14.2.6) ⎪ x–c ⎪ 1 – ——— , x ∈ [c, d), ⎪ d–c ⎩ 0 , x ≥ d, în care cei patru parametri satisfac condiţia: a < b ≤ c < d. (14.2.7) Sintaxa pentru funcţia 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 obţine o f.d.ap. de tip dreptunghiular, eficient utilizabilă la TL aferenţi variabilelor de ieşire 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 următoarea 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 funcţii este următoarea:

2

2

2)(

)( bax

ex−

−=µ , (14.2.11)

Page 4: SCF Lucrarea1

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 “funcţiei” (distribuţiei).

a

1

µ

x0

e-1 22b

Fig. 14.2.3 Sintaxa unei f.d.ap. de tip clopot Gauss este dată de relaţia: 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 relaţiei (14.2.11). Exemplul 14.2.3: Secvenţa 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 combinaţie de două curbe Gauss. Expresia analitică este prezentată pe două cazuri în cele ce urmează. • cazul 1: a1<a2, fig.14.2.4-a:

⎪⎪

⎪⎪

>>

∈≤

=−

−−

0,,,

],(,1,

)(

2122

)(

21

12

)(

22

22

21

21

bbaxe

aaxaxe

x

bax

bax

µ

, (14.2.15) • cazul 2: a1≥a2, fig.14.2.4-b:

Page 5: SCF Lucrarea1

Sisteme de conducere fuzzy (UPT, 2011)

⎪⎪⎩

⎪⎪⎨

>

≤=

−−

−−

cxe

cxex

bax

bax

,

,)(

22

22

21

21

2)(

2)(

µ

, (14.2.16) unde parametrul c ∈ (a1, a2) este obţinut din condiţia de continuitate a funcţiei µ din (14.2.16): (c-a1)2b2

2=(c-a2)2b12 . (14.2.17)

F.d.ap. obţinută în acest al doilea caz este subnormală.

a1 a2

1

µ

x0a1 a2

1

µ

x0

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=[b1 a1 b2 a2]. (14.2.19) Exemplul 14.2.4. Secvenţa 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

acx

x 2

1

1)(−

+

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

c

1

µ

x0

Fig. 14.2.5 Sintaxa funcţiei Matlab corespunzătoare acestei f.d.ap. este: y=gbellmf(x,param), param=[a b c]. (14.2.21)

Page 6: SCF Lucrarea1

Sisteme de conducere fuzzy (UPT, 2011)

Exemplul 14.2.5: Se execută următoarea 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)( cxaex −−+=µ

, (14.2.22)

c

1

µ

x0

Fig. 14.2.6

a>0

0,5

unde pentru a>0 f.d.ap. este deschisă către dreapta, iar pentru a<0 către stânga. Sintaxa funcţiei Matlab aferente este: y=sigmf(x,param), param=[a c]. (14.2.23) Exemplul 14.2.6: Se rulează secvenţa 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 reglării automate, prezentate mai jos împreună cu funcţiile Matlab care le generează:

- diferenţa 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. Funcţii Matlab utilizate pentru fuzzificarea informaţiei ferme.

După cum se cunoaşte din [4], [5], în procesul de fuzzificare a unei informaţii ferme (informaţia de intrare într-un RG-F) este necesară parcurgerea următoarelor etape: • definirea mulţimii de bază (universului discursului) care caracterizează variabila lingvistică (VL);

mulţimea de bază defineşte domeniul de variaţie a informaţiei ferme; • definirea termenilor lingvistici (TL) prin care se doreşte a fi caracterizată vag informaţia fermă;

acest lucru prepune definirea f.d.ap. prin care se caracterizează TL; • determinare gradelor de apartenenţă a valorilor ferme la TL definiţi rezultând n-uplul gradelor de

apartenenţă. Principalele funcţii Matlab care se utlizează în acest scop sunt următoarele. a) Funcţia addvar. Sintaxa funcţiei este următoarea: fis2 = addvar(fis1, varTip, 'varNume', varDom). (14.3.1) Funcţia 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 spaţiul de lucru Matlab. Rezultatul apelării îl constituie RG-F cu structura din variabila fis2. Ceilalţi parametri din relaţia (14.3.1) au următoarea semnificaţie: varNume – defineşte numele VL; varDom – defineşte domeniul de bază al VL; varTip – poate lua două valori:

Page 7: SCF Lucrarea1

Sisteme de conducere fuzzy (UPT, 2011)

'input' – pentru VL de intrare, 'output' – pentru VL de ieşire. 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 ieşire se face separat. b) Funcţia rmvar. Sintaxa funcţiei este dată de relaţia (14.3.2): fis2 = rmvar(fis1, varTip, varIndex). (14.3.2) Efectul apelării funcţiei constă în ştergerea variabilei de tip varTip şi index (număr) varIndex din RG-F cu structura definită în prealabil de variabila fis1 în spaţiul de lucru Matlab. Rezultă RG-F cu structura din variabila fis2. c) Funcţia addmf. Sintaxa funcţiei addmf este următoarea: fis2=addmf(fis1,varTip,varIndex,'fdapNume','fdapTip',fdapParam). (14.3.3) Funcţia adaugă un nou TL variabilei lingvistice nominalizate prin parametrii varTip şi varIndex. Ceilalţi parametri din relaţia (14.3.3) au următoarea semnificaţie: fdapNume – reprezintă numele TL definit; fdapTip – reprezintă tipul TL definit, adică una din tipurile de funcţii prezentate în

paragraful anterior; fdapParam – reprezintă parametrii pentru f.d.ap. specificată prin fdapTip. d) Funcţia rmmf. Sintaxa funcţiei este: fis2 = rmmf(fis1, varTip, varIndex, 'termNume', termIndex). (14.3.4) Efectul apelării acestei funcţii constă în ştergerea TL specificat prin numele termNume şi indexul termIndex din cadrul VL specificate prin varTip şi varIndex. e) Funcţia plotmf. Apelând această funcţie Matlab vor fi afişate f.d.ap. ale tuturor TL aferenţi VL cu tipul varTip şi indexul varIndex din variabila (care caracterizează structura RG-F) fis1 definită în prealabil şi adusă în spaţiul de lucru Matlab. Sintaxa funcţiei este următoarea: plotmf(fis1, varTip, varIndex). (14.3.5) Exemplul 14.3.1: Pentru ilustrarea utilizării funcţiilor enumerate, se consideră modulul de defuzzificare al unui RG-F a temperaturii, care admite ca intrare semnalul “temperatură” căreia 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 denumiţi {TFJ, TJ, TM, TI, TFI} asociaşi 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 rulării acestui fişier din linia de comandă Matlab este prezentat în fig.14.3.1 sub forma graficelor f.d.ap. aferente tuturor TL definiţi.

Page 8: SCF Lucrarea1

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 Funcţia newfis utilizată în program va fi prezentată şi studiată în lucrarea nr. 3.

C. TEMATICA LUCRĂRII: 1. Pentru exemplele 14.2.1 – 14.2.6 se execută secvenţele de program Matlab prezentate. Se

studiază efectul modificării parametrilor funcţiilor Matlab asupra formei f.d.ap. considerate. 2. Se studiază funcţiile Matlab disgmf, pimf, psigmf, smf şi zmf în aceeaşi manieră ca la

punctul anterior prin generarea unor secvenţe de program Matlab corespunzătoare. 3. Pentru exemplul 14.3.1 se execută secvenţa de program Matlab prezentată. Se studiază

efectul modificării parametrilor funcţiilor Matlab asupra formei f.d.ap. aferente TL definiţi. 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 ceilalţi 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ă, Bucureşti, 1997. [5] Precup, R.-E. şi St. Preitl: Fuzzy Controllers, Editura Orizonturi Universitare, Timişoara, 1999. [6] Precup, R.-E.: Matematici asistate de calculator. Algoritmuri, Editura Orizonturi Universitare, Timişoara, 2007.