TP2_LF

4
Centre universitaire D’AINTEMOUCHENT                                                                                  TP OMA Institut des sciences et de la technologie   RETHT MASTER 1  Département Génie Electrique                                                                                                    M r Ayache Z  Page 1 sur 4  TP Logique floue 2/3 1. But de TP Ce TP a pour but la création d’un système flou avec ses fonctions d’appartenance, ses règles d’agrégation sous MATLAB. 2. Rappelle sur les systèmes flous. Nous rappelons que chaque système basé sur la logique floue est composé de quatre blocs principaux Base de connaissance (règles et paramètres des fonctions d’appartenance). Bloc de décision ou le moteur d’inférence (inférence des opérations sur les règles) Fuzzification (transformation des entrées précises en degrés d’appartenance) Defuzzification (transformation des résultats flous en sorties précises) 3. Etapes de création d’un système flou sous MATLAB a. Création d’un système flou (SF) Pour créer un SF sous Matlab la commande suivante est utilisée : A=Newfis(nom_du_SF) Après avoir créé le SF on peut afficher ses caractéristiques avec la commande ²suivante : Showfis(A) ou bien getfis(A), où, A représenté le système Fis dans l’espace MATLAB Exemple Si nous voulons crée un SF nommé ROPOT et afficher les caractéristiques du SF ROBOT on utilise les instructions suivantes SF=Newfis(‘ ROBOT ’) ;

description

hekoo

Transcript of TP2_LF

Centre universitaire D’AIN‐TEMOUCHENT                                                                                   TP OMA Institut des sciences et de la technologie     RETHT MASTER 1  Département Génie Electrique                                                                                                     Mr Ayache Z  

Page 1 sur 4  

TPLogiquefloue2/3

1. ButdeTP

CeTPapourbutlacréationd’unsystèmeflouavecsesfonctionsd’appartenance,sesrèglesd’agrégationsousMATLAB.

2. Rappellesurlessystèmesflous.

Nousrappelonsquechaquesystèmebasésurlalogiquefloueestcomposédequatreblocsprincipaux

Basedeconnaissance(règlesetparamètresdesfonctionsd’appartenance). Blocdedécisionoulemoteurd’inférence(inférencedesopérationssurlesrègles) Fuzzification(transformationdesentréesprécisesendegrésd’appartenance) Defuzzification(transformationdesrésultatsflousensortiesprécises)

3. Etapesdecréationd’unsystèmeflousousMATLAB

a. Créationd’unsystèmeflou(SF)PourcréerunSFsousMatlablacommandesuivanteestutilisée:A=Newfis(nom_du_SF)AprèsavoircrééleSFonpeutaffichersescaractéristiquesaveclacommande²suivante:Showfis(A)oubiengetfis(A),où,AreprésentélesystèmeFisdansl’espaceMATLABExempleSinousvoulonscréeunSFnomméROPOTetafficherlescaractéristiquesduSFROBOTonutiliselesinstructionssuivantesSF=Newfis(‘ROBOT’);

Centre universitaire D’AIN‐TEMOUCHENT                                                                                   TP OMA Institut des sciences et de la technologie     RETHT MASTER 1  Département Génie Electrique                                                                                                     Mr Ayache Z  

Page 2 sur 4  

etpourafficherlescaractéristiquedeSFnomméROBOTonutiliseunedesdeuxcommandevuesprécédemmentenchoisiparexemplegetfis(SF)MATLABretournelescaractéristiquesuivantegetfis(SF)Name=robot nomduSF=ROBOTType=mamdani typed’inférence=mamdaniNumInputs=0 nombredevariabled’entré=0InLabels= Nomdevariabled’entrée=indéfiniNumOutputs=0 nombredevariabledesortie=0OutLabels= Nomdevariabledesortie=indéfiniNumRules=0 Nombrederègle=0AndMethod=min leET=minOrMethod=max leOU=maxImpMethod=min Méthoded’implicationAggMethod=max Méthoded’agrégation=maxDefuzzMethod=centroid Méthodededefuzzification=Centredegravité

OnvoitclairementquenotreSFn’apasde:entrée,sortie,règles.Ilfautdoncluiajoutertouscequ’illuimanque.

b. Ajouterdesvariableslinguistiquesd’entréesauSF.1. Pourajouterdesvariablesd’entéeslacommandesuivanteestutilisée:

A=Addvar(A,’Input’,’nondelavariable’,[universdediscours]);

2. Pourcréerlessous‐ensembles(SEF)delavariabled’entréelacommandesuivanteestutilisée:

A=addmf(A,‘Input’,1,’nonduSEF’,typedefonctionSEF’,[paramétrédelafonction]);

c. Ajouterdesvariableslinguistiquesdesortie1. Demêmepourajouterdesvariablesdesortielacommandeaddvarestutilisée:

A=Addvar(A,’Output’,’nondelavariable’,[universdediscours]);

2. Pourcréerlessous‐ensembles(SEF)delavariabledesortieslacommandesuivanteestutilisée:

A=addmf(A,‘output’,1,’nonduSEF’,‘typedefonctionSEF’,[paramétrédelafonction]);

3. Posederèglesfloues

Apresavoirdéterminélesvariablesd’entréesetdesortiesetfuzzifiersesdernières.IlrestemaintenantàajouterlesrèglesflousànotreS.Cesrèglessontdonnéessousformedematricequicontient:m 2colonnesoùlacolonnemreprésentelesindexesdesSEFd’entrées.LacolonnenlesindexesdesSEFdesortie,lacolonnem+n+1contientlepoidsquidoitêtreappliquéàlarègleetenfinlacolonnem+n+2indexedel’opérateurflousutilisépourchaquerèglefloueEToubienOU,sionutiliseleETl’indexest1,siparcontreleOUl’indexest2

Centre universitaire D’AIN‐TEMOUCHENT                                                                                   TP OMA Institut des sciences et de la technologie     RETHT MASTER 1  Département Génie Electrique                                                                                                     Mr Ayache Z  

Page 3 sur 4  

Exemple

SionaunSFavec2entréesetuneseulsortie,lesdeuxentréescontiennechacune3SEFetlasortieelleaussicontient3SEF,onobtiendralalistederèglesuivante:

Liste_de_règle=[ 11111(Règle1) 12211];(Règle2) mmnm+n+1m+n+2

Cettematricecontientdeuxrègles,ainsilapremièrerèglereprésentéeparla1ligne,setraduitcommesuivant:Sientrée1estSEF1ETentrée2estSEF1,Alorssortie1estSEF1.

LacommandesuivantenouspermetajoutéesesrèglesànotreSF:

A=addrule(A,liste_de_règle)

Pourvoirlesrèglesenutiliselacommandesuivante:A=Showrule(A,numerodelarègle,’forme‘)

Laformepeutêtreverbale(verbose),Symbolique(symbolic)etindexé(indexed).

d. SauvegardesousformeFIS(fuzzyinférencesystème)

Lacommandewritefispermetdesauvegardéeunprogrammequiestcréédanslastructureespacedetravailmatlabdansunfichierquial’extension.fis

Writefis(A,nomdusystèmeflou),pourappelerseSF.fisonutiliselacommande

A=readfis(nomduSF).

Remarque:

Souscetteforme.fisleprogrammepeutêtreutilisédansSimulink

VoirlesrèglesdenotreSF

PourvoirlecomportementdenotreSFenutiliselacommandesuivante

Ruleview(A)oubiensousformedesurfaceavecsurfview(A)

1.4Travailàfaire

1.4.1 PARTIE I 

Nousallonsreprendrel’exempleduROBOT.Supposonsquel’onveuilledéplacerunrobotmobile(fig.2.2)enutilisantunalgorithmederéglagetrèssimple.Lepremierpasdanslaconceptiond’unrégulateurbasésurlalogiquefloue(toutcommeclassique)estlechoixdesvariableslinguistiques.Dansnotrecaslavariabled’entréeestladistanceentrelerobotetl’obstacle(d)etlavariabledesortieestlavaleurdel’anglederouedirectricedurobot(α).

Dansleraisonnementbasésurlalogiquefloue,onvaétablirlesrègleslinguistiques,floues(fig.2.3):

Siladistanceestpetite,ilfauttourneràgauche(anglenégatif). Siladistanceestautoursde10cm,ilfautgarderladirection.

Centre universitaire D’AIN‐TEMOUCHENT                                                                                   TP OMA Institut des sciences et de la technologie     RETHT MASTER 1  Département Génie Electrique                                                                                                     Mr Ayache Z  

Page 4 sur 4  

Siladistanceestgrande,ilfauttourneràdroite(anglepositif).

Question

1. CréerleSFappeléROBOT,etaffichersescaractéristiques2. Ajouterlesvariablesd’entéesetdesortiesetlesfonctionsSEFàcesvariableson

s’inspirantdelafig.2.3ettracerleurcourbeenutilisantlacommandesubplot(m,n,p)3. Ajouterlesrèglesd’appartenanceetafficherlesrèglessousdéférentesformes(verbale,

symbolique,etindexé.4. Afficherlesnouvelles

caractéristiquesduSFROBOT5. Sauvegarderlesystèmeavec

l’extension.fis6. Afficherlesrègles.

1.4.2 Partie II 

On veut construire un régulateur qui possède 

deux entrées (Température, Pression) et une 

sortie (valve de contrôle) fig.2.4. Les règles 

sont présentées dans le tableau suivant : 

TP

F T C

F P / /

M M M

G M / G

Question 

Même question que la partie I 

                Fig.2.4 Fonction d’appartenance