0% ont trouvé ce document utile (0 vote)
944 vues9 pages

TP11 Matlab Poly

Ce document décrit la conception et la simulation de systèmes de contrôle flou sous Matlab/Simulink. Il présente les outils de la boîte à outils floue de Matlab et donne des exemples de systèmes de contrôle de durée d'arrosage et de niveau d'eau dans un réservoir.

Transféré par

lamice
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
944 vues9 pages

TP11 Matlab Poly

Ce document décrit la conception et la simulation de systèmes de contrôle flou sous Matlab/Simulink. Il présente les outils de la boîte à outils floue de Matlab et donne des exemples de systèmes de contrôle de durée d'arrosage et de niveau d'eau dans un réservoir.

Transféré par

lamice
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Ecole Polytechnique de Sousse Intelligence Artificielle Appliquée

TP N°1 : Initiation à la commande floue

1. Présentation du Toolbox fuzzy logic.

La toolbox fuzzylogic de Matlab possède un éditeur qui permet de créer des systèmes
d’inférences floues : des FIS (pour fuzzy inference system). Cette boite à outils permet de générer
des fichiers « .fis », qui correspondent à des systèmes d’inférences floues.
Cette boite à outils possède 3 éditeurs (de fis, de règles et de fonctions d’appartenance) qui
permettent de saisir l’ensemble des données du FIS ainsi que 2 interfaces graphiques qui
permettent de visualiser les inférences directement sur la base de règles, ainsi que des surfaces de
contrôle.

Pour lancer cet éditeur principal : taper >>fuzzy dans la commande windows de Matlab.

A partir de la fenêtre principale de l’éditeur de fis, une navigation assez aisée permet de passer

d’un éditeur à un autre…

Le fis crée devra être enregistré « nomdefichier.fis » dans le répertoire de simulation et chargé

dans un bloc fuzzycontroleur de Simulink.

Le calcul en logique floue avec Matlab met à la disposition de l'utilisateur deux outils
fondamentaux :
Un guide de construction du régulateur par logique floue.
Un bloc fonctionnel à intégrer dans un schéma de régulation Simulink.

Elaboré par Mr Turki Mourad page 1


Ecole Polytechnique de Sousse Intelligence Artificielle Appliquée

1- Conception du SIF
On accède à la fenêtre principale du «FIS Editor» par une instruction sur la ligne de commande
MATLAB: » fuzzy

On y choisit premièrement le nombre d'entrées depuis la barre de menu: Edit -->Addinput.


On trouve alors sur la fenêtre principale du «FIS Editor» autant d'icônes qu'on veut de signaux
d'entrées et sorties, et une pour les règles d'inférence.
La partie inférieure permette de spécifier les méthodes d'inférences. On accède alors à une
fenêtre spécifique par un double clic sur l'icône du signal dont on veut spécifier les fonctions
d'appartenance.

On doit y accomplir les actions suivantes, de préférence dans l'ordre indiqué:


- Choix de la gamme de variation de chaque signal, de préférence [–1; 1], ce qui implique
que les signaux soient d'abord normalisés.

Elaboré par Mr Turki Mourad page 2


Ecole Polytechnique de Sousse Intelligence Artificielle Appliquée

Choix des fonctions d'appartenance depuis la barre de menu:Edit → AddMFs... . On accède

alors à une fenêtre qui permet de choisir le nombre de fonctions et leur type.

- On préférera les formes simples – triangle «trimf» et trapèze «trapmf» – peu


coûteuses en temps et en espace mémoire.
- Sur la fenêtre MF, on choisit le nom et la dimension de chaque fonction
d’appartenance : soit en déplaçant les points du graphique avec la souris, soit en
spécifiant le vecteur dans la fenêtre «params». Pour le nom, un mnémonique – tel EZ
pour "environ zéro" – vaut mieux que mf1 à mfn attribués par défaut. On ferme
ensuite chaque fenêtre de signal.
De retour dans le du «FIS Editor», on choisit le nom du signal de préférence à input k attribué
par défaut.

Lorsque tous les signaux sont spécifiés, on ouvre l'éditeur des règles d’inférence :

Elaboré par Mr Turki Mourad page 3


Ecole Polytechnique de Sousse Intelligence Artificielle Appliquée

On termine en définissant les méthodes pour interpréter les combinaisons logiques et les règles
d'inférence. On recommande ici des choix qui ne soient pas trop gourmands en temps de calcul,
en donnant des résultats assez bons.
- Pour le ET logique (And method), on choisit la méthode produit (prod) et pour le OU
logique (Or method), on choisit la méthode Maximum (max).
- Pour les règles d'inférence, on préfère la méthode somme-produit : Implication: prod et
Agrégation: mean. Pour la défuzzyfication, on recommande la méthode du centre de
gravité (centroid).
Il faut sauvegarder le système flou dans l'espace de travail afin de pouvoir l'utiliser dans Simulink.
On choisit l'option File Æ Save to workspace, ou CTRL+T.
2- Essai en simulation
On crée un schéma Simulink dans lequel on colle un bloc "Fuzzy Logic Controller"qu'on trouve
dans la boîte "SIMULINK Fuzzy", elle-même placée dans la boîte "Blocksets&Toolboxes". On
doit y spécifier un nom de régulateur parmi ceux chargés précédemment dans l'espace de travail.
Pour commencer Simulink, il suffit de taper la commande simulink à la ligne de commandes de
Matlab. Le contrôleur à logique floue est situé sous les options Fuzzy Logic Toolbox, comme
montré à la figure ci-dessous:
La composante Fuzzy Logic Controller est celle utilisée. La composante Fuzzy Logic Controller
withRuleviewer est presque la même chose, sauf que l'éditeur qui permet de voir l'inférence et la
Défuzification s'ouvre lors d'une simulation.

Elaboré par Mr Turki Mourad page 4


Ecole Polytechnique de Sousse Intelligence Artificielle Appliquée

2. Manipulation

Partie A : conception et simulation d’un contrôle de la durée d’arrosage


1- Présentation du systeme:
Nous allons voir comment mettre en œuvre la commande floue pour le contrôle d’un système
d’arrosage automatique sous l’environnement Matlab/simulink et la bibliothèque Fuzzy Logic
Toolbox.
Le modèle de simulation doit contenir le contrôleur flou ainsi que les valeurs de la température T
et l’humidité H représentés par deux constantes T(°C) et H(%). L’affichage de la durée d’arrosage
est réalisé par un block « display »

Le fonctionnement désiré de ce système d’arrosage est décrit par la base des règles suivante :

La répartition floue des variables d’entré et de sortie sont illustrés par les figures ci-dessous :

Elaboré par Mr Turki Mourad page 5


Ecole Polytechnique de Sousse Intelligence Artificielle Appliquée

2- Travail demandé :
2.1- Définir les ensembles floues (Chaude ; Froide) et (Sec ; Mouillé) correspondants aux
variables entrées (Température et Humidité).
2.2- Définir également les fonctions d’appartenances (courte ; longue) correspondantes à la
variable de sortie (durée d’arrosage).

Elaboré par Mr Turki Mourad page 6


Ecole Polytechnique de Sousse Intelligence Artificielle Appliquée

2.3- Sur le Rule Editor, définir les règles d’inférences liants les entrées et la sortie du
contrôleur .On définit à chaque fois la relation logique entre les deux entrées, ensuite on choisit la
sortie qu’on va appliquer et on clique sur addrule.
2.4- Une fois les entrées sont définies, ainsi que la sortie et les règles, enregistrer votre système
d’inférence (le contrôleur flou crée) dans le workspace sous le nom irrigationfis.
2.5- En utilisant la bibliothèque Fuzzy sous l’environnement Simulink, construire le modèle
du système en utilisant le bloc Fuzzy Controller. En cliquant sur ce bloc, taper le nom du
système d'inférence qu’on va utiliser (irrigationfis)
2.6- Lancer la simulation et observer la réponse du système. Les interfaces Rule Viewer et
Surface Viewer s’activent avec la simulation.

Partie B : Conception et simulation d’une régulation floue de niveau d'eau


d’un réservoir
1- Présentation du système :
Dans cette partie du TP, on cherche à réguler le niveau d’eau d’un réservoir par un contrôleur
flou. Cependant, pour mieux illustrer le concept d'un contrôleur flou, on comparera la
performance d'un contrôleur PID classique avec le contrôleur flou.
Pour cela vous disposez du modèles Simulink « tank.mdl » qui correspond à un modèle
directement utilisable sous Simulink en paramétrant les entrées, les valeurs des constantes et
conditions initiales nécessaires. Le système sous étude est le suivant:

Le fonctionnement désiré de ce système est décrit par la base des règles suivante :

Elaboré par Mr Turki Mourad page 7


Ecole Polytechnique de Sousse Intelligence Artificielle Appliquée

La répartition floue des variables d’entré et de sortie sont illustrés par la figure ci-dessous :

Elaboré par Mr Turki Mourad page 8


Ecole Polytechnique de Sousse Intelligence Artificielle Appliquée

2- Travail demandé :
1- Ouvrir le fichier tank.mdl et taper la valeur (-1) dans la constante « mode » pour choisir le
mode de régulation PID classique.
2- Simuler le fonctionnement du système tout en enregistrant les formes d’ondes de la
consigne et celle de la sortie.
3- Avec le Fis Editor, construire le SIF tout en introduisant les ensembles floues
correspondants à l’entrée (niveau et débit) et celles correspondantes à la sortie (ouverture de la
valve)
4- Sur le Rule Editor, définir les règles d’inférences liants les entrées et la sortie du
contrôleur .On définit à chaque fois la relation logique entre les deux entrées, ensuite on choisit la
sortie qu’on va appliquer et on clique sur addrule.
5- Une fois les entrées sont définies, ainsi que la sortie et les règles, enregistrer votre système
d’inférence (le contrôleur flou crée) dans le workspace sous le nom regulateur_flou.
6- Changer le mode de régulation PID par flou tout en tapant la valeur « 1 » dans « mode ».
7- Simuler du nouveau le fonctionnement et enregistrer les formes d’ondes de la consigne et
celle de la sortie. Conclure
8- Pour améliorer les performances du régulateur flou, on va construire un nouveau fichier
.fis que vous le nommez regulateur_flou_ameliore tout en remplaçant les fonctions
d’appartenances triangulaires par des fonctions gaussiennes au niveau des entées uniquement. Les
fonctions d’appartenances de la variable de sortie ne doivent pas être modifiées.
9- Enregistrer le fichier dans workspace et simuler du nouveau le fonctionnement du
système. Conclure.

Elaboré par Mr Turki Mourad page 9

Vous aimerez peut-être aussi