Sunteți pe pagina 1din 52

Controlere fuzzy digitale

Capitolul 6
Doru Todinca
Departamentul Calculatoare
UPT

Cuprins

Implementarea hardware a inferentei fuzzy


Schema generala de control fuzzy
Operatia de fuzzificare
Inferenta fuzzy digitala
Operatia de defuzzificare
Fuzzy Logic Controllers
FLC clasic
FLC simplificat
FLC imbunatatit

Surse

Acest curs contine text, figuri, formule, etc, preluate (si prelucrate)
din lucrarea de diploma a Anei-Maria Badulescu [Bad99], preluate
dupa Patyra [Pat96] si dupa Chiueh (pt FLC simplificat) [Chi92]
In acest curs multimile fuzzy vor fi notate doar cu litere mari, fara
A
, B,
B

simbolul tilda deasupra, adica A, A , B, B , etc, nu A,

Cuprins

Implementarea hardware a inferentei fuzzy


Schema generala de control fuzzy
Operatia de fuzzificare
Inferenta fuzzy digitala
Operatia de defuzzificare
Fuzzy Logic Controllers
FLC clasic
FLC simplificat
FLC imbunatatit

Cuprins

Implementarea hardware a inferentei fuzzy


Schema generala de control fuzzy
Operatia de fuzzificare
Inferenta fuzzy digitala
Operatia de defuzzificare
Fuzzy Logic Controllers
FLC clasic
FLC simplificat
FLC imbunatatit

Schema generala de control fuzzy

Knowledge
Base
Fuzzifier

Defuziffier
Fuzzy

Process Output
and State

Decision
Making Logic
Controlled
System/Process

Fuzzy
Actual Control
Nonfuzzy

Figura 1 : Schema generala de control fuzzy

Schema generala de control fuzzy

Schema generala de control fuzzy (fig 1) contine FLC-ul si


procesul/sistemul condus (controlled system/process)

Dreptunghiul cu linie intrerupta marcheaza controllerul fuzzy


(FLC = Fuzzy Logic Controller)

Iesirile si eventual starile sistemului condus sunt citite de


controller (in acest caz FLC) si pe baza lor acesta va
determina marimile de reglare (de actionare asupra procesului:
actual control)

Orice sistem de control functioneaza in acest mod, doar ca


acum controller-ul nu e de tip PI sau PID, ci e un FLC

Marimile de iesire, intrare si starile procesului sunt crisp, pe


cind in interiorul FLC se utilizeaza multimi fuzzy

necesitatea transformarii din lor valori crisp in multimi


fuzzy (operatie numita fuzzificare) sau din multimi fuzzy in
valori crisp (defuzzificare)

Schema generala de control fuzzy

Deci, interfata FLC cu exteriorul este realizata de catre


Fuzzifier (pt intrari), respectiv de catre Defuzzifier (pt iesiri)

Knowlege Base e baza de reguli fuzzy, care depinde de


aplicatie (de procesul condus)

Decision Making Logic e partea care realizeaza inferenta fuzzy


propriu-zisa si nu depinde de aplicatie

Daca e implementat hardware, FLC are ca parametri numarul


maxim de intrari, de iesiri, nr maxim de reguli fuzzy ce poate
fi stocat, timp de raspuns intrare-iesire, etc (se va discuta
ulterior)

In cele ce urmeaza vom detalia Fuzzifier-ul, Defuzzifier-ul si


inferenta fuzzy propriuzisa

Cuprins

Implementarea hardware a inferentei fuzzy


Schema generala de control fuzzy
Operatia de fuzzificare
Inferenta fuzzy digitala
Operatia de defuzzificare
Fuzzy Logic Controllers
FLC clasic
FLC simplificat
FLC imbunatatit

Operatia de fuzzificare: scop

Transformarea unei valori de intrare crisp a faptului de intrare


intr-o multime fuzzy (fuzzifiarea) compenseaza pentru erorile
rezultate in procesul de masurare a valorii de intrare reale
(utilizind senzori), si de digitizare a acesteia (conversie
analog-numerica), urmata eventual de scalare, daca domeniul
de reprezentare a ei difera de domeniul de reprezentare in
interiorul FLC-ului

Daca se face fuzzificarea atunci un fapt de intrare va activa in


general mai multe reguli simultan, decit daca faptul de intrare
ramine crisp, ceea ce face ca trecerea de la o regula la alta sa
fie mai lina, deci si procesul de reglare sa fie mai lin

Desigur, daca marimile de intrare sunt fuzzificate, atunci


FLC-ul va avea de facut mai multe calcule

Operatia de fuzzificare
Valoarea masurata

Gradul de aparteneta

Multimea
fuzzy A

Universul
discursului
discret

1/m
0

Valoarea centrala

1/n

Matricea binara

Univesul
discursului
continuu

delta

Mappare binara
m 0
0
0
0
0 0
0

0
0
0
0
0

0
0
0
0
0

0
0
0
0
0

0
0
0
0
0

0
1
0
0
0

1
0
0
0
0

1
1
0
0
0

1
1
1
0
0

1
1
1
1
1

1
1
1
0
0

1
1
0
0
0

1
0
0
0
0

0
1
0
0
0

0
0
0
0
0

0
0
0
0
0

0
0
0
0
0

0
0
0
0
0

0
0
0
0
0

0
0
0
0
0
n

c32

Figura 2 : Operatia de fuzzificare

Operatia de fuzzificare

Valoarea masurata A (fig 2) (in acest caz o iesire sau stare a


procesului) este o marime analogica, avind un univers al
discursului continuu

Ea este apoi discretizata, fiind dupa aceea fuzzificata intr-un


univers al discursului discret

In urma operatiei de fuzzificare se obtine o multime fuzzy A,


care poate fi o marime singulara (singleton), sau sa aiba o
forma triunghiulara sau de alt tip (de ex Gauss)

De obicei o reprezentatam sub forma unui triunghi isoscel


avind jumatatea bazei egala cu (daca = 0 atunci
triunghiul devine singleton)

Universul discursului este discrtizat in n intervale egale, iar


functia de apartenenta este discretizata in m intervale egale

Operatia de fuzzificare

Reprezentarea interna, in interiorul FLC, a multimii fuzzy A se


face intr-un univers al discursului cu n elemente si cu o functie
de apartenenta reprezentata pe m biti, adica avind valori
intregi intre 0 si 2m 1

Adica reprezentarea interna a unei multimi fuzzy A este o


matrice booleana de dimensiune m n

Deci, pt functiile de apartenenta se prefera reprezentarea ca nr


intregi pe m biti, in locul unor nr reale in intervalul [0, 1]

Daca n 6= n atunci trebuie sa aiba loc o scalare a universului


discursului valorilor discretizate la universul discursului
corespunzator reprezentarii interne a multumilor fuzzy in FLC

Universul discursului real si discretizat poate avea si valori


negative, dar pt reprezentarea interna se prefera numere
pozitive intre 0 si n 1

In mod normal se prefera ca intre m si m sa existe relatia


m = 2m

Cuprins

Implementarea hardware a inferentei fuzzy


Schema generala de control fuzzy
Operatia de fuzzificare
Inferenta fuzzy digitala
Operatia de defuzzificare
Fuzzy Logic Controllers
FLC clasic
FLC simplificat
FLC imbunatatit

Inferenta fuzzy digitala: reguli fuzzy

In continuare este descris setul de N reguli fuzzy din baza de


reguli a FLC
Fiecare regula poate avea in general K intrari si L iesiri, desi
in general se prefera FLC cu o singura iesire
Cu A1, A2, . . . AK s-au notat cele K variabile lingvistice de
intrare (de ex viteza, distanta, sau eroarea e, derivata erorii
de, derivata a doua a erorii d2e, etc), iar cu B1, . . . , BL ele L
variabile lingvistice de iesire (de ex acceleratia, curentul
motorului, marimea de reglare u, etc)
A1i , . . . , AK
i reprezinta termenii lingvistici corespunzatori
variabilei de intrare 1, . . . K corespunzatori regulii i (de ex pt
viteza very small, small, etc, pt eroare, negative large, approx
zero, positive large, etc)
Similar Bi1 , . . . , BiL reprezinta termenii lingvistici
corespunzatori variabilelor de iesire 1, . . . , L din regula i
O reprezentare grafica a inferentei fuzzy pentru cazul cu 2
intrari si o iesire, cu faptul de intrare crisp apre in figura 3

Inferenta fuzzy digitala: reguli fuzzy


R1 : IF A1 IS A11 AND A2 IS A21 AND . . . AND AK IS AK
1 THEN
B1 IS B11 IS B2 IS B12 AND . . . AND BL IS B1L ,
ALSO
R2 : IF A2 IS A12 AND A2 IS A22 AND . . . AND AK IS AK
2 THEN
1
2
L
B1 IS B2 AND B2 IS B2 AND . . . AND BL IS B2 ,
ALSO
..
.
Ri : IF A1 IS A1i AND A2 IS A2i AND . . . AND AK IS AK
i THEN
B1 IS Bi1 AND B2 IS Bi2 AND . . . AND BL IS BiL ,
ALSO
..
.
RN : IF A1 IS A1N AND A2 IS A2N AND . . . AND AK IS AK
N THEN
1
2
L
B1 IS BN AND B2 IS BN AND . . . AND BL IS BN .

Exemplu grafic de inferenta fuzzy cu faptul nefuzzificat

mB1

A11

A1

a1

B1

a2

M
I
N

A12

M
A
X

mB2
A22

M
I
N

a1

A1

mB
b

a2

B2

A2

Figura 3 : Exemplu de inferenta fuzzy cu 2 intrari si o iesire cind faptul


de intrare nu este fuzzificat (este crisp)

Exemplu grafic de inferenta fuzzy cu faptul fuzzificat

m(y)

m(x)
Ai

Bi
ai

Bi
Rulei

m(y)

x
m(y)

m(x)
Aj

Bj

aj

Bj

y
Rulej

Figura 4 : Exemplu de inferenta fuzzy cu o intrare si o iesire cind faptul


de intrare este fuzzificat

Cuprins

Implementarea hardware a inferentei fuzzy


Schema generala de control fuzzy
Operatia de fuzzificare
Inferenta fuzzy digitala
Operatia de defuzzificare
Fuzzy Logic Controllers
FLC clasic
FLC simplificat
FLC imbunatatit

Operatia de defuzzificare

Iesirea procesului de inferenta fuzzy este o multime fuzzy (de


obicei ne-normala) obtinuta prin reuniunea iesirilor regulilor
activate , de ex fig 3, 4

Exista si situatii cind se utilizeaza direct aceasta multime


fuzzy (de ex in sisteme expert se poate incerca o identificare
a ei, adica sa i se dea o interpretare ca multime fuzzy

In probleme de reglare insa se doreste ca asupra sistemului


condus sa se aplice o marime de actionare crisp, nu fuzzy

Pentru aceasta trebuie sa aiba loc operatia de defuzzificare,


adica transformarea unei multimi fuzzy intr-o valoare crisp

Operatia de defuzzificare

Cea mai utilizata metoda de defuzzificare este COA (Centre


OF Area), numita si COG (Centre of Gravity), ilustrata in
figura 5

Marimea de iesire crip va fi abscisa centrului de greutate al


figurii rezultate in urma inferentei fuzzy

Formula pentru COG este:


Pn
j=1 (yj )yj
P
n
j=1 (yj )

R
R(y )ydy
(y )dy

sau, pt cazul discret,

Aceasta operatie implica o impartire si este foarte lenta si


costisitoare la implementarea hardware

Exista si alte metode de defuzzificare: SOM (Smallest of


Maxima), Mean of Maxima, etc

Operatia de defuzzificare
i=2

Gradul de apartenenta

i=3

i=1

0
0
COA

Figura 5 : Operatia de defuzzificare

Universul
discursului

Cuprins

Implementarea hardware a inferentei fuzzy


Schema generala de control fuzzy
Operatia de fuzzificare
Inferenta fuzzy digitala
Operatia de defuzzificare
Fuzzy Logic Controllers
FLC clasic
FLC simplificat
FLC imbunatatit

Cuprins

Implementarea hardware a inferentei fuzzy


Schema generala de control fuzzy
Operatia de fuzzificare
Inferenta fuzzy digitala
Operatia de defuzzificare
Fuzzy Logic Controllers
FLC clasic
FLC simplificat
FLC imbunatatit

Caracterizarea performantelor circuitelor FLC

Masuratori de performanta date de producatorii de FLC-uri:


1. numarul de inferente fuzzy pe secunda, unde inferenta fuzzy
poate fi inteleasa ca operatia definita de o singura regula, sau
de o parte a unei reguli
2. numarul operatiilor elementare fuzzy pe secunda (MIN sau
MAX)

Acesti parametri nu pot masura suficient de bine viteza reala


a unui FLC.

De aceea, pentru a caracteriza FLC-ul, se introduce timpul de


raspuns intrare-iesire (INOUT ):
Acest timp este definit ca timpul total de intirziere din
momentul in care datele sunt disponibile la intrarea FLC pina
in momentul cand se genereaza actiunile crisp la iesire.

Caracterizarea performantelor circuitelor FLC


Parametri fundamentali al unui FLC sunt:

numarul de variabile de intrare (K )

numarul de variabile de iesire (L)

numarul de reguli lingvistice din baza de reguli (N)

numarul de functii de apartenenta pentru universul discursului


la intrare (MBIN )

numarul de functii de apartenenta pentru universul discursului


la iesire (MBOUT )

numarul de vectori binari ce caracterizeaza o functie de


apartenenta (n)

numarul de biti dintr-un vector binar (m)(pe citi biti se


reprezinta functiile de apartenenta)

timpul de raspuns intrare-iesire (INOUT )

Fuzzy Logic Controllers


Inferenta fuzzy inseamna obtinerea unui fapt nou B dintr-un fapt
A si o regula A B, conform formulei:
B = A RAB

(1)

Pentru cazul in care circuitul are doua intrari, relatia 1 devine:


R1 : IF A11 AND IF A21 THEN B1 , ALSO
R2 : IF A12 AND IF A22 THEN B2 , ALSO
..
.
Ri : IF A1i AND IF A2i THEN Bi , ALSO
..
.
RN : IF A1N AND IF A2N THEN BN .
(2)
in care R1 .. RN sunt regulile fuzzy, A1 si A2 reprezinta variabilele
de intrare, iar B variabila de iesire.

Fuzzy Logic Controllers


In aceste reguli, premisa (sau antecedentul) se refera la variabilele
de intrare, iar concluzia la multimile fuzzy de iesire.
In cazul DISO premisa este compusa, cele doua parti ale ei fiind
conectate prin operatorul logic AND.
Deci conform definitiei implicatiei fuzzy, se obtine:
B = (A1 , A2 ) R

(3)

unde R = (A1 , A2 ) B.
Regulile Ri sunt conectate intre ele cu operatorul ALSO care este
interpretat ca fiind OR logic si atunci rezulatul final se obtine din
reuniunea regulilor Ri :
N
[
Ri
(4)
R=
i =1

Fuzzy Logic Controllers

Faptul A este A = (A1, A2), si atunci concluzia B1 se obtine


aplicand regula compozitionala de inferenta, adica:

B1 = (A1, A2) R = (A1, A2)

N
[

Ri =

i =1

N
[

(A1, A2) Ri

(5)

i =1

Functia de apartenenta a multimii B1 poate fi calculata cu ajutorul


operatorului MAX-MIN. Considerand regula Ri se obtine:
B1i = (A1, A2) Ri

(6)

Fuzzy Logic Controllers


Functia de apartenenta corespunzatoare se defineste in felul
urmator:
B1i (b) = MAXMIN(A1 (a1 ) A2 (a2 ), R (a1 , a2 , b)) =
a1 A1, a2 A2

MINMAX {MIN[MIN(A1 (a1 ), A1 (a1 )), MIN(A2 (a2 ), A2 (a2 ))],


1
i
(7)
Bi (b)}, a1 A1, a2 A2
= MIN(i , Bi (b))b B
unde, in acest caz, i este definit: i =
MIN{MAXMIN(A1 (a1), A1 (a1 )), MAXMIN(A2 (a2 ), A2 (a2 ))}
1
1
(8)
a1 A1, a2 A2

Fuzzy Logic Controllers

Deci maximul dintre B11 , B12 , . . . , B1N determina actiunea finala


B1, calculata ca reuniune:
B1 =

N
[
i =1

B1i = MAX (B11 , B12 , . . . , B1N )

(9)

Fuzzy Logic Controllers: implementarea clasica


FUZZIFIER

n*m A1 n*m

MIN1

n*m

MAX

MIN2 n*m MAX m

Input 1

BN

Bi

B2

B1

MINi n*m MAX m

A11

A2

FUZZIFIER

A1i

A1N

MINN

n*m A2 n*m

MIN1

n*m
n*m

MAX
MAX

m
m

MIN1

MIN1

MIN2

MIN2

MINi
MIN2 n*m MAX m

Input 2

MINi

A21

A22

A2i

AN

n*m

MINN

MAX

n*m

MINi

MAX n*m B1
n*m

MINN

n*m

MINN

DEFUZZIFIER
n*m

Output

n*m

MAX

Figura 6 : FLC DISO, implementarea clasica

FLC clasic DISO: premizele

DISO - Double Input, Single Output

Schema din fig 6 nu e o schema hardware, ci de principiu !

Fiecare din cele 2 fapte de intrare (Input 1 si Input 2) sunt


transformate in multimi fuzzy de catre cele 2 fuzzifiere

MF obtinute se stocheaza in memoriile A1, respectiv A2,


ambele vectori de n m biti

Termenii lingvistici din premize sint tinuti in cele N (unde N e


nr de reguli fuzzy) memorii (de n m biti) notate A11 , . . . , A1N
pt prima intrare si respectiv A21 , . . . A2N

De fapt nu e nevoie de asa multe memorii, ci pt fiecare intrare


trebuie sa existe doar MBIN memorii, dar atunci trebuie
stabilit o regula de legatura intre indicele (numarul) regulii si
al termenului

FLC clasic DISO: premizele

Primul nivel de circuite min face minim intre functia de


apartenenta a unui termen si a faptului de intrare fuzzificicat;
intrarile si iesirea sint vectori de n m biti

Conform formulei se calculeaza MIN(A1 (a1 ), A1 (a1 ))

Primul nivel de circuite MAX caculeaza i pt fiecare premiza


a fiecarei reguli

Practic calculeaza maximul unui tablou de n elemente;

Intrarea e vector de n m biti, iesirea e scalar

La o implementare hardware s-ar pune cite un registru la


iesirea fiecarui circuit MAX din primul nivel de MAX, si s-ar
face maxim intre o intrare a circuitului MAX si continutul
registrului, iar rezultatul s-ar memora in registru

Acest lucru s-ar repeta de n ori

Al doilea nivel de circuite MIN face operatia AND intre


subpremize: intrarile si iesirea sint scalari (pe m biti)

FLC clasic DISO: concluziile

Al treilea nivel de circuite MIN din FLC apartine de partea de


procesare a concluziilor

Aceste circuite realizeaza operatia de minim intre functia de


apartenenta a termenului din concluzie (Bi pt regula i ), care e
un vector de n m biti, si gradul de activare i al regulii i
(care e un scalar de m biti)

Iesirea e un vector de n m biti, adica Bi , acea multime fuzzy


trunchiata

Ca si la premize, in loc de N memorii de n m biti, cite una


pt fiecare regula, e suficient sa existe MBOUT astfel de
memorii, cite una pt fiecare termen lingvistic din concluzii

Atunci trebuie facuta corespondenta intre indexul i al regulii i


si termenul lingvistic respectiv

FLC clasic DISO: concluziile

Ultimul
Snivel de circuire MAX face operatia de reuniune
B1 = N
i =1 B1i = MAX (B11 , B12 , . . . , B1N ) corespunzatoare
operatorului ALSO

Si intrarile si iesirea sint vectori de n m biti

Exista mai multe posibilitati de implementare hardware a


acestui circuit MAX, depinde ce anume se proceseaza in
paralel

Iesirea acestui MAX se stocheaza in memoria B1 de n m biti

De acolo va fi defuzzificata si trimisa la iesire

Cuprins

Implementarea hardware a inferentei fuzzy


Schema generala de control fuzzy
Operatia de fuzzificare
Inferenta fuzzy digitala
Operatia de defuzzificare
Fuzzy Logic Controllers
FLC clasic
FLC simplificat
FLC imbunatatit

FLC simplificat

Intrarile sale nu se mai fuzzifica, ele raman sub forma de


singleton (valoare singulara).

Aceasta duce la simplificarea calculelor din premiza regulilor


fuzzy,

in sensul ca valoarea i se obtine prin intersectia intre


multimea fuzzy A1i si faptul A1 reprezentat printr-un singleton.

In cazul in care premiza este compusa, se face AND intre


valorile astfel obtinute.

Concluzia regulii se obtine ca minim intre valoarea i si


functia de apartenenta a multimii Bi , figura 3

Conditii pentru a putea simplifica arhitecturii FLC

Pentru determinarea intersectiei dintre faptul de intrare si


multimea fuzzy corespunzatoare termenului unei variabile
lingvistice de intrare vom folosi valoarea faptului, normalizata
la universul discursului, ca adresa in memoria variabilei
lingvistice corespunzatoare acelei intrari.

termenii variabilei lingvistice, vazuti ca multimi fuzzy, se


intersecteaza si deci un fapt poate intersecta mai multi
termeni si in consecinta poate activa mai multe reguli

Pentru a mari viteza circuitului, consideram ca regulile se


proceseaza in paralel si atunci trebuie determinat parametrul
MNSAR (maximum number of simultaneous active rules) numarul maxim de reguli care de activeaza simultan [Chi92]

Conditii pentru a putea simplifica arhitecturii FLC

Se observa ca MNSAR = MOF K , unde MOF (maximum


overlap factor) este egal cu numarul maxim de termeni care se
pot suprapune

MOF 2 si este convenabil sa se aleaga MOF = 2

Aceasta impune utilizatorului o restrictie la felul in care isi


alege termenii variabilelor lingvistice de intrare, dar aceasta
restrictie nu este deranjanta, fiind natural sa se intersecteze
doar doi termeni lingvistici

Termenii vor fi impartiti in pari si impari, cele doua multimi


fiind disjuncte, asa ca fiecare poate fi memorata separat, in n
locatii de m biti (fig 7)

Separarea termenilor unei variabile lingvistice in pari si


impari
m(x)
nl

nm

ns

zr

ps

pm

pl

x
m(x)
ns

nl

pl

ps

x
m(x)
nm

zr

pm

Figura 7 : Separarea termenilor unei variabile lingvistice in pari si impari

Schema hardware pt FLC simplificat, cu 3 intrari

In acest caz (MOF = 2) vom reprezenta cei MBIN termeni ai


fiecarei variabile de intrare folosind doua tablouri de n locatii,
fiecare locatie continand valoarea functiei de apartenenta degree (m biti) si codul termenului respectiv - symbol.

Unul din tablouri contine termenii impari iar celalalt pe cei


pari.

Pe langa cei MBIN termeni mai trebuie adaugat un simbol no


term corespunzator situatiei cand faptul nu intersecteaza nici
un termen in una din cele doua memorii.

Schema hardware pt FLC simplificat, cu 3 intrari

Circuitul din figura 8 reprezinta chiar o schema hardware, nu


doar o schema de principiu, ca in figura 6 (FLC DISO clasic)

Pentru circuitul MISO, K = 3, se obtine MNSAR = 8,

O tripleta de intrari (faptul de intrare) va determina ca la


iesirea memoriilor ce contin variabile de intrare sa apara trei
perechi (symbol, degree) = (Sij , Dij ), i , j {1, 2, 3}.

Simbolurile vor fi folosite ca adrese in memoria (sau


memoriile) de reguli (RM111 , RM112 , . . . , RM222 ).

Aceste memorii contin termenul variabilei lingvistice din


concluzia regulii adresate de acele simboluri.

Simbolul obtinut din memoria de reguli va fi folosit pentru a


adresa memoriile variabilelor lingvistice de iesire, in care
fiecare simbol este codificat pe n m biti.

Schema hardware pt FLC simplificat, cu 3 intrari

In paralel cu procesarea simbolurilor se prelucreaza si


degree-urile obtinute din memoriile de intrare:

se face operatia MIN intre cele trei degree-uri, ce corespunde


operatorului logic AND intre premizele unei reguli.

Acest rezultat semnifica gradul in care premiza unei reguli este


adevarata ( in formulele 8).

Facand MIN intre acest si functia de apartenenta a


termenului variabilei lingvistice de iesire se obtine multimea B
corespunzatoare regulii activate.

Consecintele regulilor activate se reunesc prin circuitul MAX


cu 8 intrari, a carui iesire intra in defuzzificator.

Registrele sunt optionale si au doar rolul de a face pipeline


intre operatia de inferenta si defuzzificare.

Input 1
0

63

63

63

S11 D11 S12 D12

S11 S21

Input 3

Input 2

S21 D21 S22 D22

S31 D31 S32

D32

S31

RM111

RM112

RM121

RM122

RM211

RM212

RM221

RM222

C111
D11 D21
Counter

MIN

MIN

MIN

MIN

MIN

MIN

MIN

MIN

MIN

MIN

MIN

MIN

MIN

MIN

MIN

modulo

aux1

64

MIN

md1

nr

0
:
63
0
:
63
:
0
:
63

cs1
MIN

MIN

MIN

MIN

MIN

MIN

MIN

MIN

REG

REG

REG

REG

REG

REG

REG

REG

r1

do1

do2
MAX

aux_1

MAX

MAX

MAX

aux_2
MAX

MAX

aux_5
MAX

mxr
DEFUZIFICATOR

Output

Cuprins

Implementarea hardware a inferentei fuzzy


Schema generala de control fuzzy
Operatia de fuzzificare
Inferenta fuzzy digitala
Operatia de defuzzificare
Fuzzy Logic Controllers
FLC clasic
FLC simplificat
FLC imbunatatit

FLC imbunatatit

Se bazeaza pe comutativitatea MAX-MIN si REUNIUNE.


Prima data se construiesc relatiile fuzzy individuale.
Relatia fuzzy Ri (implicatia fuzzy pentru prima variabila):
Ri1 = A1i Bi

(10)

Ri2 = A2i Bi

(11)

Pentru a doua variabila:

R 1 si R 2 reprezinta relatii partiale sau subrelatii


Relatia totala R = R 1 R 2 .

FLC imbunatatit
Pentru prima variabila de intrare A1 si iesirea B se obtine:
R 1 = R11 R21 , . . . , RN1

(12)

Pentru combinatia dintre a doua variabila de intrare A2 si iesirea B:


R 2 = R12 R22 , . . . , RN2

(13)

Inlocuind operatorul REUNIUNE cu MAX, se obtine:


R 1 (a1 , b) = MAX {R11 (a1 , b), R21 (a1, b), . . . , RN1 (a1 , b)}

(14)

R 2 (a1 , b) = MAX {R12 (a1 , b), R22 (a1, b), . . . , RN2 (a1 , b)}

(15)

FLC imbunatatit
Se folosesc relatiile partiale pentru a obtine rezultatul inferentei
fuzzy.
Iesirea B1 poate fi obtinuta folosind operatorul MIN-superpozitie a
celor doua relatii partiale in functie de intrarile A1 si A2:
B1 = MIN{[A1 R 1 (a1 , b)], [A2 R 2 (a2 , b)]}

(16)

bB
B1 = MIN{MAXMIN[A1, R1(a1 , b)], MAXMIN[A2, R 2 (a2 , b)]}
(17)
bB
unde R 1 (a1 , b) si R 2 (a2 , b) sunt date de ecuatiile 14, respectiv 15.

FLC imbunatatit
Sub-rule Learning Block
1

A1

n*m
n*m

MIN1

n2*m

B11
MAX
1

A2
1

n*m

n2*m
n*m

MIN2

B2

AN
1

MAX

n *m

n*m
n2*m
n*m

MINN

MIN

BN
n*m

Input 1

FUZZIFIER
n*m

AN

n*m

MIN

n*m

A2

n*m

n*m

B1

n*m
n*m

B2N
2

MAX

A1

FUZZIFIER

Input 2

n *m

n*m

MAX

MIN

MINN

n *m
n2*m

n*m

MAX

n2*m

DEFUZZIFIER

B2
n*m

A22

MIN2
n2*m

n*m

MAX
B21
n*m

A21

MIN1
2

n *m
n*m

Sub-rule Learning Block

Figura 9 : FLC imbunatatit

Output

FLC imbunatatit: avantaje si dezavantaje

Zona din interiorul dreptunghiurilor (din fig 9) se poate


procesa off-line, adica inainte de aparitia valorilor faptului
de intrare
Acest lucru reduce mult timpul de raspuns intrare-iesire al
FLC imbunatatit, comparativ cu cel clasic
Problema principala e ca in general regulile fuzzy cu mai
multe premize (de ex cu 2) nu se dau in forma IF premiza1
THEN concluzie si IF premiza2 THEN concluzie, ci IF
premiza1 AND premiza2 THEN concluzie
Adica, e greu sa fie date regulile cu variabilele de intrare
complet separate
Incercarile de a porni de la reguli cu mai multe premize si de a
separa premizele pot sa nu dea rezultate bune !!
In simularile pe care le-am efectuat cu acest tip de FLC el nu
a reglat corect procesul decit pt reguli cu o ingura premiza !!
Exista totusi situatii, dar destul de rar, cind se pot da reguli
cu variabilele de intrare complet separate

Ana-Maria Badulescu.
Studiul performantelor circuitelor fuzzy utilizand limbajul
VHDL, Lucrare de diploma, conducator stiintific Doru
Todinca, Universitatea Politehnica timisoara, Dep.
Calculatoare, Facultatea de Automatica si Calcultaoare, 1999.
Tzi-cker Chiueh.
Optimization of fuzzy logic inference architecture.
Computer, 25(5):6771, May 1992.
Marek J. Patyra.
Design considerations of fuzzy logic controllers.
In Marek J. Patyra and D.M. Mlynek, editors, Fuzzy Logic:
Implementations and Applications, pages 143175. John Wiley
& Sons Ltd. and B.G. Teubner, 1996.

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