31 1 147KB
TP 1 Création d’un système flou à l’aide de l’interface graphique Objectif du TP : Le but de ce TP est de réaliser un contrôleur flou pour réguler le processus du premier ordre dont la fonction de transfert 0.8 z −1 H ( z) = 1 − 0.5 z −1 On veut réguler en logique floue le processus H ( z ) , afin que la sortie y ( t ) suive la consigne
r ( t ) . Le régulateur aura 2 entrées : l’erreur de poursuite e ( t ) et sa variation ∆e ( t ) , et une
sortie cde ( t ) : e ( t ) = y ( t ) − r ( t ) , ∆e ( t ) = e ( t ) − e ( t − 1) Consigne
0.8 1 − 0.5
du/dt
1er étape : Ouvrir l’interface graphique FIS Editor grâce à la commande fuzzy. 2ème étape : Conception d’un système d’inférence/commande à logique floue 1. Déclarer les variables significatives d’entrée et de sortie (respectivement erreur, d_erreur et cde). Par défaut, l’interface propose une entrée et une sortie avec la méthode de Mamdani. On ajoute une deuxième entrée par l’option Add input du menu Edit. En double-cliquant sur l’une des entrées/sortie, on ouvre la fenêtre d’édition des fonctions d’appartenance dans laquelle on peut choisir le nombre et le type de ces fonctions, l’intervalle de valeurs de cette variable. La sélection à la souris de chacune des fonctions d’appartenance permet de lui donner un nom auquel on fera référence dans les règles floues. 2. Définir les valeurs linguistiques de chacune. Pour les entrées, on a 3 ensembles flous (Negative, Nulle, Positive) Pour la sortie, on a 5 ensembles flous (GN, N, Z, P, GP)
3. Pour chaque variable d’entrée, définir une fonction d’appartenance pour chacune de ses valeurs linguistiques. Pour les entrées, les fonctions d’appartenance sont gaussiennes sur l’intervalle de valeurs [-10 ; 10]. Pour la sortie, les fonctions d’appartenance sont triangulaires sur l’intervalle de valeurs [-10 ; 10].
4. Concevoir une collection de règles floues « si-alors » permettant d’évaluer les valeurs linguistiques des variables de sortie On ouvre la fenêtre Rule Editor par l’option Edit … Rules. Tous les ensembles flous des différentes variables sont affichés; il suffit de cliquer sur l’ensemble adéquat pour chacune des règles. Dans le controleur flou consçu, ajouter les régles selon le tableau ci-dessous.
D_er
commande Negative Nulle Positive
Negative GP P Z
erreur Nulle P Z N
Positive Z N GN
Remarqe 1Dans le cas affiché ci-dessus, il s’agit de la règle 8 : Si erreur est Positive ET d_erreur est Nulle Alors cde est N
Remarque 2 Chaque règle peut être pondérée par un coefficient que l’on écrit à la fin et entre parenthèses. Par défaut ce coefficient vaut 1. 5. Choisir une méthode de conversion des valeurs linguistiques de sortie obtenues en valeurs précises. (centroid). ème 3 étape : Sauvegarder le système sous forme d’un fichier d’extension reg_flou.FIS Remarque 3Chaque règle peut être pondérée par un coefficient que l’on écrit à la fin et entre parenthèses. Par défaut ce coefficient vaut 1. Pour pouvoir utiliser ce régulateur dans SIMULINK ou dans un fichier M, il faut impérativement le sauvegarder dans l’espace de travail, à l’aide de l’option Export … To Workspace du menu File. En utilisant fenêtre Window de Matlab, tester ces commandes.
L’interface graphique de la boîte à outils Fuzzy Logic TOOLBOX La commande fuzzy permet d’ouvrir l’interface graphique FIS Editor dans laquelle on peut définir complètement un système flou. Par défaut, l’interface propose une entrée et une sortie avec la méthode de Mamdani. Les opérateurs ET et OU sont réalisés respectivement par le min et le max, l’implication se fait par le min, l’agrégation des règles par le max et la défuzzification par la méthode du centre de gravité (centroid). On décrit ci-après les différents menus et leurs options. Menu File Menu Edit Menu View New FIS nouveau Undo annuler la Rules permet de passer à la système flou de dernière fenêtre Rule Viewer dans type Mamdani modification laquelle on peut donner à ou Sugeno toutes les variables d’entrée des valeurs Import lecture d’un Add Variable ajout d’une quelconques à l’aide de la système flou variable d’entrée souris ou par des valeurs sauvegardé sur ou de sortie numériques en les entrant disque (fichier dans le vecteur ligne FIS) Input. On observe ainsi la Export Export du Remove suppression de la surface floue de la variable système flou Selected variable d’entrée de sortie ainsi que sa vers l’espace de Variable ou de sortie valeur numérique après travail ou un préalablement défuzification fichier sélectionnée Print Impression Membership édition des Surface permet de passer à la Functions fonctions fenêtre Surface Viewer d’appartenance dans laquelle est affichée (ensembles flous) la surface représentant la variable de sortie en Close Fermeture de la Rules édition des règles fonction des variales fenêtre floues. d’entrée.