TP2_LF
description
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