ISSAT Kairouan - Mastère de Recherche "Automatique et Informatique Industrielle" 2021-2022
Modélisation et Commande Floues
de Systèmes Linéaires
Objectif:
Dans cette manipulation on essaie de se familiariser avec les outils de la logique floue
appliquées pour la modélisation et la commande de systèmes linéaires en utilisant l'outil
Matlab/Simulink.
1. Conception d'un modèle flou
On accède à la fenêtre principale du «Edit» par une instruction sur la ligne de commande
MATLAB : » fuzzy
Figure 1. Fenêtre principale de l'éditeur de logique floue.
On y choisit premièrement le nombre d'entrées et de sorties depuis la barre de menu:
Edit--> Add variable.
Enseignant/MC Ayachi ERRACHDI----------------------------Commande Non Conventionnelle 1
ISSAT Kairouan - Mastère de Recherche "Automatique et Informatique Industrielle" 2021-2022
Figure 2. Changement du nombre des variables d'entrée et de sortie
On trouve alors sur la fenêtre principale du «Edit» 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 permet 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.
• Choix des fonctions d'appartenance depuis la barre de menu: Edit → Add MFs. 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. Pour le nom,
un mnémonique – tel EZ pour "environ zéro" – vaut mieux que "mf1" attribués par défaut. On
ferme ensuite chaque fenêtre de signal.
Enseignant/MC Ayachi ERRACHDI----------------------------Commande Non Conventionnelle 2
ISSAT Kairouan - Mastère de Recherche "Automatique et Informatique Industrielle" 2021-2022
Figure 3. Changement du nom et dimension de chaque fonction d'appartenance
Lorsque tous les signaux sont spécifiés, on ouvre l'éditeur des règles d'inférence:
Figure 4. Fenêtre de l'éditeur de règles d'inférence.
Enseignant/MC Ayachi ERRACHDI----------------------------Commande Non Conventionnelle 3
ISSAT Kairouan - Mastère de Recherche "Automatique et Informatique Industrielle" 2021-2022
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", on choisit la méthode
produit (prod) et pour le "OU logique", on choisit la méthode somme (mean).
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). On
signale que la méthode somme (mean) n'est pas dans le menu, mais qu'il faut passer par la
méthode Custom, dans laquelle on écrit en toute lettre «mean» sans oublier l'encadrement
d'apostrophes.
On ferme toutes les fenêtres secondaires de l'éditeur FIS avant d'enregistrer le régulateur sur
le disque en choisissant un nom dont on se souviendra facilement. Si on veut ensuite utiliser
ce régulateur dans un schéma Simulink, il faut encore l'enregistre dans l'espace de travail
MATLAB: Workspace.
2. Exemple de modélisation floue
L'objectif de cet exercice est la modélisation floue de la commande de voiture autonome. Pour
cela, on suppose qu'il y a deux entrées, c'est-à-dire, la distance jusqu'à la voiture suivante [m]
et le changement de vitesse [m/s2]. Le contrôleur flou ajuste une sortie, c'est-à-dire, le réglage
de l'accélération [m/s2].
Soit la fonction d'appartenance de la variable d'entrée "la distance jusqu'à la voiture suivante
[m] " de type X :
TP P PF G TG
µ( X )
1
0.5
X%
0 5 10 15 20 25
Figure 5. Fenêtre des fonctions d'appartenance de la variable " X "
avec : TP (Très Petit), P (Petit), PF (Parfait), G (Grand) et TG (Très Grand).
Soit la fonction d'appartenance de la variable d'entrée " le changement de vitesse [m/s2] " de
type Y :
µ (Y )
F C E
0.5
Y%
-10 -5 0 5 10
Figure 6. Fenêtre des fonctions d'appartenance de la variable " Y "
avec : F (Faible), C (Constante) et E (Elevée).
Enseignant/MC Ayachi ERRACHDI----------------------------Commande Non Conventionnelle 4
ISSAT Kairouan - Mastère de Recherche "Automatique et Informatique Industrielle" 2021-2022
Soit la fonction d'appartenance de variable de sortie " le réglage de l'accélération [m/s2]" de
type Z suivante :
µ (Z )
TP P Z G TG
1
0.5
Z%
-2 -1 0 1 2
Figure 7. Fenêtre des fonctions d'appartenance de la variable " Z "
avec : TP (Très Petit), P (Petit), Z (Zéro), G (Grand) et TG (Très Grand).
Les règles de base sont:
- Si la distance est Petite ET la vitesse est Faible, ALORS le réglage de l'accélération
est Zéro.
- Si la distance est Petite ET la vitesse est Constante, ALORS le réglage de
l'accélération est Très Petit.
- Si la distance est Parfaite ET la vitesse est Faible, ALORS le réglage de l'accélération
est Très Grand.
- Si la distance est Parfaite ET la vitesse est Constante, ALORS le réglage de
l'accélération est Zéro.
En utilisant l'opérateur flou min-max, la méthode de coupure comme noyau d'inférence,
l'opérateur d'union comme accumulateur et la méthode du centre de gravité de zone comme
défuzzificateur, donner la sortie du contrôleur flou si les mesures confirment que la distance
jusqu'à la voiture suivante est de 13 m et que la vitesse est -2.5 m/s2.
utiliser la commande Matlab : fuzzy
ajouter le nombre des fonctions d'appartenance d'entrée et de sortie
tracer les fonctions d'appartenance d'entrée et de sortie
ajouter les règles d'inférence
calculer la variable de sortie sachant que la distance jusqu'à la voiture suivante est de
13 m et que la vitesse est -2.5 m/s2 .
4. Exemple d'application de la commande floue
4.1. Exemple d'un réservoir d'eau : contrôleur flou
Notre objectif est d'appliquer un contrôleur flou pour commander le niveau d'eau dans un
réservoir comme donné par la figure suivante.
Enseignant/MC Ayachi ERRACHDI----------------------------Commande Non Conventionnelle 5
ISSAT Kairouan - Mastère de Recherche "Automatique et Informatique Industrielle" 2021-2022
Figure 8. Schéma bloc de la commande floue du niveau d'eau dans un réservoir
Le réservoir est décrit par l'équation différentielle suivante:
dh (t ) 0.012 1
+ 2 * 9.81h(t ) = qin
dt 0.4 0.4
Les fonctions d'appartenance de la variable d'entrées "niveau d'eau", notée X , sont données
par la figure suivante :
µ( X )
B A E
1
0.5
X%
1 5 9 14
Figure 9. Fenêtre des fonctions d'appartenance de la variable " X "
avec : B (Bas), A (acceptable) et E (Elevé).
Les fonctions d'appartenance de la variable de sortie "état de la vanne", notée Y , sont données
par la figure suivante :
µ (Y )
F NRT O
1
0.5
0 Y%
-30 -10 0 10 30
Figure 10. Fenêtre des fonctions d'appartenance de la variable " Y "
avec : F (Fermer), NRT (Ne Rien Toucher) et O (Ouvrir).
Enseignant/MC Ayachi ERRACHDI----------------------------Commande Non Conventionnelle 6
ISSAT Kairouan - Mastère de Recherche "Automatique et Informatique Industrielle" 2021-2022
Les règles de base:
Règle 1: SI le niveau est accepté, ALORS pas de changement de l'état de la vanne
Règle 2: SI le niveau est bas, ALORS ouvrir rapidement la vanne
Règle 3: SI le niveau est haut, ALORS fermer rapidement la vanne.
1- ouvrir un nouveau fichier flou par la commande "fuzzy"
2- tracer les variables d'entrée-sortie
3- appliquer les règles
4- transférer les données par : file--> exoprt --> workspace ou bien file--> exoprt --> file
5- ouvrir un nouveau fichier simulink par la commande "simulink" et présenter le système et
son contrôleur.
6 - double clic sur fuzzy controller, télécharger le ficher déjà réalisé.
7- simuler et vérifier les résultats.
8- prendre deux entrées (la commande et la dérivée de la commande), simuler et comparer les
résultats.
4.2. Exemple d'un circuit RLC : contrôleur PD flou
Soit le circuit RLC définit par le schéma suivant
Figure 11. Circuit RLC
L'équation différentielle du système est la suivante
d 2Vc (t ) dVc (t )
0.1 + = 1.85Ve (t )
dt 2 dt
1- En utilisant la commande "tf", donner la fonction de transfert en boucle ouverte.
2- En utilisant la commande "sisotool" sous Matlab\Simulink, concevoir un contrôleur
Proportionnel-Dérivé conventionnel pour le système afin de garantir un temps de stabilisation,
en Boucle Fermée, à une entrée échelon unitaire environ 0.5 secondes et la marge de phase en
boucle fermée doit être d'environ 50°. Donner les valeurs de K et de Td .
Enseignant/MC Ayachi ERRACHDI----------------------------Commande Non Conventionnelle 7
ISSAT Kairouan - Mastère de Recherche "Automatique et Informatique Industrielle" 2021-2022
Figure 12. Fixation de paramètres du PD classique
3- Dans ce cas, pour la conception du contrôleur Proportionnel-Dérivé Flou pour le système
afin de garantir un temps de stabilisation, en Boucle Fermée, à une entrée échelon unitaire
environ 0.5 secondes, on propose les fonctions d'appartenance de la variable d'entrées "l'erreur
e(t ) " données par la figure suivante :
Enseignant/MC Ayachi ERRACHDI----------------------------Commande Non Conventionnelle 8
ISSAT Kairouan - Mastère de Recherche "Automatique et Informatique Industrielle" 2021-2022
µ (e(t ))
N M P
1
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1
Figure 13. Fenêtre des fonctions d'appartenance de la variable " e(t ) "
avec : N (Négatif), M (Moyenne) et P (Positif).
Les fonctions d'appartenance de la variable d'entrées "la dérivée de l'erreur " sont données par
la figure suivante :
de(t )
µ( )
dt
1 N Z P
0.5
-50 -40 -30 -20 -10 30 40 50
0 10 20
Figure 14. Fenêtre des paramètres du système second ordre
avec : N (Négatif), Z (Zero) et P (Positif).
4- soient les règles d'inférences suivantes:
- SI (e est N) ET (de/dt est N) ALORS (U est N)
- SI (e est N) ET (de/dt est Z) ALORS (U est N)
- SI (e est N) ET (de/dt est P) ALORS (U est Z)
- SI (e est Z) ET (de/dt est N) ALORS (U est N)
- SI (e est Z) ET (de/dt est Z) ALORS (U est Z)
- SI (e est Z) ET (de/dt est P) ALORS (U est P)
- SI (e est P) ET (de/dt est N) ALORS (U est Z)
- SI (e est P) ET (de/dt est Z) ALORS (U est P)
- SI (e est P) ET (de/dt est P) ALORS (U est P)
a.- tracer les variables d'entrée-sortie
b.- appliquer les règles
c.- simuler et vérifier les résultats.
4.3. Exemple d'un moteur à courant continu : contrôleur PID flou
Rekha kushwah, Sulochana Wadhwani, Speed control of separately excited DC motor using
fuzzy logic controller, International Journal of Engineering Trends and Technology (IJETT) -
Volume4 Issue6- June 2013.
Enseignant/MC Ayachi ERRACHDI----------------------------Commande Non Conventionnelle 9