You are on page 1of 4

CentreuniversitaireDAINTEMOUCHENTTP OMA

Institutdessciencesetdelatechnologie

RETHT MASTER 1
DpartementGnieElectriqueMr Ayache Z

TP Logique floue 2/3

1. But de TP
Ce TP a pour but la cration dun systme flou avec ses fonctions dappartenance, ses rgles
dagrgation sous MATLAB.

2. Rappelle sur les systmes flous.


Nous rappelons que chaque systme bas sur la logique floue est compos de quatre blocs

principaux

Base de connaissance (rgles et paramtres des fonctions dappartenance).


Bloc de dcision ou le moteur dinfrence (infrence des oprations sur les rgles)
Fuzzification (transformation des entres prcises en degrs dappartenance)
Defuzzification (transformation des rsultats flous en sorties prcises)

3. Etapes de cration dun systme flou sous MATLAB


a. Cration dun systme flou (SF)
Pour crer un SF sous Matlab la commande suivante est utilise :
A=Newfis(nom_du_SF)
Aprs avoir cr le SF on peut afficher ses caractristiques avec la commande
suivante : Showfis(A) ou bien getfis(A), o, A reprsent le systme Fis dans
lespace MATLAB

Exemple

Si nous voulons cre un SF nomm ROPOT et afficher les caractristiques du SF
ROBOT on utilise les instructions suivantes
SF=Newfis( ROBOT ) ;
Page1sur4

CentreuniversitaireDAINTEMOUCHENTTP OMA
Institutdessciencesetdelatechnologie

RETHT MASTER 1
DpartementGnieElectriqueMr Ayache Z

et pour afficher les caractristique de SF nomm ROBOT on utilise une des deux
commande vues prcdemment en choisi par exemple getfis(SF) MATLAB retourne
les caractristique suivante
getfis(SF)
Name = robot

nom du SF =ROBOT
Type = mamdani
type dinfrence = mamdani
NumInputs = 0

nombre de variable dentr=0
InLabels =

Nom de variable dentre= indfini
NumOutputs = 0

nombre de variable de sortie =0
OutLabels =

Nom de variable de sortie = indfini
NumRules = 0

Nombre de rgle =0
AndMethod = min

le ET = min
OrMethod = max

le OU=max
ImpMethod = min

Mthode dimplication
AggMethod = max

Mthode dagrgation =max
DefuzzMethod = centroid
Mthode de defuzzification = Centre de gravit

On voit clairement que notre SF na pas de : entre, sortie, rgles. Il faut donc lui ajouter tous ce
quil lui manque.
b. Ajouter des variables linguistiques dentres au SF.
1. Pour ajouter des variables dentes la commande suivante est utilise :
A=Addvar(A, Input, non de la variable,[univers de discours ]) ;
2. Pour crer les sousensembles (SEF) de la variable dentre la commande
suivante est utilise :
A=addmf(A, Input, 1, non du SEF, type de fonction SEF, [paramtr de la fonction]) ;

c. Ajouter des variables linguistiques de sortie
1. De mme pour ajouter des variables de sortie la commande addvar est utilise :
A=Addvar(A, Output, non de la variable,[univers de discours ]) ;
2. Pour crer les sousensembles (SEF) de la variable de sorties la commande
suivante est utilise :
A=addmf( A, output, 1, non du SEF, type de fonction SEF, [paramtr de la fonction]) ;
3. Pose de rgles floues
Apres avoir dtermin les variables dentres et de sorties et fuzzifier ses
dernires. Il reste maintenant ajouter les rgles flous notre S. Ces rgles sont
donnes sous forme de matrice qui contient : m
2 colonnes o la colonne m
reprsente les indexes des SEF dentres. La colonne n les indexes des SEF de
sortie, la colonne m+n+1 contient le poids qui doit tre appliqu la rgle et en
fin la colonne m+n+2 indexe de loprateur flous utilis pour chaque rgle floue
ET ou bien OU, si on utilise le ET lindex est 1, si par contre le OU lindex est 2


Page2sur4

CentreuniversitaireDAINTEMOUCHENTTP OMA
Institutdessciencesetdelatechnologie

RETHT MASTER 1
DpartementGnieElectriqueMr Ayache Z

Exemple
Si on a un SF avec 2 entres et une seul sortie, les deux entres contienne chacune 3 SEF et la
sortie elle aussi contient 3 SEF, on obtiendra la liste de rgle suivante :
Liste_de _rgle = [

1 1 1 1 1 (Rgle 1)

1 2 2 1 1]; (Rgle 2)

m m n m+n+1 m+n+2

Cette matrice contient deux rgles, ainsi la premire rgle reprsente par la 1 ligne, se traduit
comme suivant : Si entre 1 est SEF 1 ET entre 2 est SEF 1, Alors sortie 1 est SEF 1.
La commande suivante nous permet ajoute ses rgles notre SF:
A=addrule(A,liste_de_rgle)
Pour voir les rgles en utilise la commande suivante : A = Showrule(A,numero de la rgle,
forme )
La forme peut tre verbale (verbose), Symbolique (symbolic) et index (indexed).
d. Sauvegarde sous forme FIS (fuzzy infrence systme)
La commande writefis permet de sauvegarde un programme qui est cr dans
la structure espace de travail matlab dans un fichier qui a lextension .fis
Writefis (A, nom du systme flou), pour appeler se SF.fis on utilise la commande
A=readfis(nom du SF) .
Remarque :
Sous cette forme .fis le programme peut tre utilis dans Simulink
Voir les rgles de notre SF
Pour voir le comportement de notre SF en utilise la commande suivante
Ruleview(A) ou bien sous forme de surface avec surfview(A)

1.4 Travail faire


1.4.1PARTIEI
Nous allons reprendre lexemple du ROBOT. Supposons que lon veuille dplacer un robot
mobile (fig.2.2) en utilisant un algorithme de rglage trs simple. Le premier pas dans la
conception dun rgulateur bas sur la logique floue (tout comme classique) est le choix des
variables linguistiques. Dans notre cas la variable dentre est la distance entre le robot et
lobstacle (d) et la variable de sortie est la valeur de langle de roue directrice du robot ().
Dans le raisonnement bas sur la logique floue, on va tablir les rgles linguistiques,
floues (fig.2.3) :

Si la distance est petite, il faut tourner gauche (angle ngatif).


Si la distance est autours de 10cm, il faut garder la direction.
Page3sur4

CentreuniversitaireDAINTEMOUCHENTTP OMA
Institutdessciencesetdelatechnologie

RETHT MASTER 1
DpartementGnieElectriqueMr Ayache Z

Si la distance est grande, il faut tourner droite (angle positif).


Question
1. Crer le SF appel ROBOT, et afficher ses caractristiques
2. Ajouter les variables dentes et de sorties et les fonctions SEF ces variables on
sinspirant de la fig.2.3 et tracer leur courbe en utilisant la commande subplot(m,n,p)
3. Ajouter les rgles dappartenance et afficher les rgles sous dfrentes formes (verbale,
symbolique, et index.
4. Afficher les nouvelles
caractristiques du SF ROBOT
5. Sauvegarder le systme avec
lextension .fis
6. Afficher les rgles.
1.4.2PartieII
Onveutconstruireunrgulateurquipossde
deuxentres(Temprature,Pression)etune
sortie(valvedecontrle)fig.2.4.Lesrgles
sontprsentesdansletableausuivant:
T
P
F

Question
MmequestionquelapartieI

Fig.2.4Fonctiondappartenance
Page4sur4

You might also like