réglage par logique floue

Transcription

réglage par logique floue
Centre de compétences en
automatisation industrielle
et productique
Systèmes
asservis
Volume 5 R
Asservissements par logique floue
(Résumé)
J.-M. Allenbach
Ecole d’Ingénieurs de Genève
Laboratoire d’Automatique
N° 129R
Edition 2001
Réglage par logique floue
CHAPITRE 12 : RÉGLAGE PAR LOGIQUE FLOUE
12.1 PRINCIPE
12.1.1 Introduction
Si la logique floue est depuis le milieu des années '80 à la mode dans des applications
industrielles et "grand-public" , les bases théoriques remontent déjà aux travaux du professeur
L. A. Zadeh à Berkley en 1965. Si on se penche sur certains réglages non linéaires appliqués
antérieurement à la publication des théories, on s'aperçoit que la logique floue se pratiquait
déjà de manière intuitive et pragmatique.
v
G
w
ucm
FLC
u
OCM
y
S
xs
Fig. 12.1 Structure de réglage par logique floue.
Le schéma ci-dessus montre une parenté du réglage par logique floue avec le réglage
par variables d'état. Si un régulateur d'état crée le signal de commande ucm par une
combinaison linéaire des variables d'état, de la consigne et de l'intégrale de l'écart de réglage
(chap. 10), le régulateur flou le crée par combinaison non linéaires de variables linguistiques.
En général, cette combinaison repose sur une description en langage courant, qui est ensuite
formalisée sous forme de tableau à double entrée (ou plus) ou d'une série de règles. Si on
continue la comparaison avec le réglage d'état, le réglage flou porte en général sur un nombre
plus limité de variables, souvent seulement deux dont une est l'écart de réglage.
On peut se pencher sur la structure interne d'un régulateur flou. La première opération
consiste à sélectionner parmi les variables d'entrée celles qui sont les plus représentatives du
comportement du système, et si possible qu'on peut mesurer sans coût prohibitif.
J.-M. Allenbach 20.11.01
12–1
Réglage par logique floue
w
µrés
µ
v
y
M
yM
yN
N
Rinf
Ffuz
xs
yVL
uVL
Dfuz
ucm
urés
Tinf
Fig. 12.2 Structure interne d'un régulateur flou
M
Matrice de sélection des mesures: pour un système à régler d'ordre ns et un choix de p
variables retenues, sa dimension sera de p × (ns+3). Elle contient souvent beaucoup de zéros.
N
Matrice de normalisation: matrice diagonale qui permet de ramener la plage de
variation de chaque variable entre -1 et 1, les unités de sorties sont des [p.u.].
Ffuz Opération de fuzzification: création des variables linguistiques et de leurs fonction
d'appartenance.
Tinf
Matrice d'inférence des variables linguistiques ou ensemble de règles d'inférences .
Rinf Méthode d'application de règles d'inférences pour décrire le signal de commande
normalisé et sa fonction d'appartenance en fonction des valeurs instantanées des signaux
d'entrée.
Dfuz
Opération de défuzzification pour créer le signal de commande.
xs
Vecteur des grandeurs d'état du système à régler
yM
Vecteur des grandeurs d'entrée choisies
yN
Vecteur des variables d'entrée normalisées
µ
Facteurs d'appartenance des variables linguistiques d'entrée
yVL
Fonctions d'appartenance des variables linguistiques d'entrée
uVL
Fonctions d'appartenance de la variable linguistique de sortie
urés
Fonctions de sortie résultante de la défuzzification
µrés
Facteurs d'appartenance de la variable linguistique de sortie
ucm
Signal de commande
J.-M. Allenbach 20.11.01
12–2
Réglage par logique floue
12.1.2 Variables linguistiques et fonctions d'appartenance.
Chaque grandeur physique y utilisée doit être normalisée entre –1 et +1. Pour ce faire,
on la divise par MAX(ymax, –ymin). La plage de fonctionnement sera divisée en 3 à 7 zones
affectée chacune d'une variable linguistique.
Dans la description analogique d'une grandeur physique, on n'a qu'une variable
linguistique dont la fonction d'appartenance peut prendre toutes les valeurs entre –1 et +1.
µ
Mesure
+1
yN
+1
–1
–1
Fig. 12.3 Grandeur normalisée décrite en analogique.
Dans la description en logique classique, on a deux variables linguistiques dont les
fonctions d'appartenance peuvent prendre les valeurs 0 ou 1, Par exemple "négatif" et
"positif". Ces deux variables linguistiques sont dans ce cas complémentaires, mais la
description binaire est très souvent trop brutale. Dans l'exemple de la température, les
variables "chaud" et "froid" affectées de fonctions d'appartenance valant 0 ou 1 offrent une
description qui manque de nuances.
µ
Négatif
Positif
1
yN
+1
–1
Fig. 12.4 Grandeur normalisée décrite en logique classique.
Dans la description en logique floue, les fonctions d'appartenance des variables
linguistiques peuvent prendre toutes les valeurs comprises entre 0 et 1.
Négatif
µ
EZ 1
Positif
yN
+1
–1
Fig. 12.5 Grandeur normalisée décrite en logique floue à 3 variables linguistiques.
On peut choisir plusieurs formes de fonction d'appartenance, mais les plus usuelles
sont triangulaires, trapézoïdales ou gaussiennes.
Fig. 12.6 Formes de fonction d'appartenance.
J.-M. Allenbach 20.11.01
12–3
Réglage par logique floue
Quelle que soit la forme choisie, il faudra prendre certaines précautions dans la
construction et la disposition des fonctions d'appartenance.
• On veillera, pour la variable linguistique "Environ Zéro", à éviter un "plat" au sommet,
susceptible d'entraîner une indétermination du réglage. Ceci s'applique particulièrement à la
variable de sortie et à la variable d'entrée "écart de réglage" si elle est présente, ou aux
grandeurs réglée et de consigne. Pour d'autres grandeurs, le "plat" sera peut-être justement
souhaitable, pour introduire un domaine où celle-ci n'influence pas le réglage.
• Pour la même raison, on veillera à éviter que les variables contiguës à "Environ Zéro"
laissent une zone ou leur fonction d'appartenance prend la valeur zéro au voisinage de la
valeur nulle de la grandeur normalisée.
• On évitera un recouvrement trop important ou trop faible de deux fonctions d'appartenance
contiguës (entre 0,3 et 0,7). On évitera de même, pour les formes simples, de permettre
qu'une valeur de grandeur normalisée puisse être décrite par plus de deux variables
linguistique dont la fonction d'appartenance est non nulle.
• On préférera les triangles ou trapèzes aux gaussiennes ou autres fonctions compliquées,
dévoreuses d'espace mémoire et nécessitant des temps de calculs plus long lorsque le
régulateur est en fonction.
Selon la valeur instantanée de la grandeur physique normalisée yN, on lui attribue une
ou deux variables linguistiques yVL, avec un poids µ. C'est l'opération de fuzzyfication.
µ
N
EZ 1
P
yN
–0,3
–1
+0,6
+1
Fig. 12.7 Exemple de fonctions d'appartenance.
Dans l'exemple de la figure 12.6, les valeurs de la grandeur normalisée se décrivent
ainsi:
y N= − 0,3 Þ
y VL=N avec µ = 0,7
y VL=EZ avec µ = 0,3
y N = + 0,6 Þ
y VL=P
avec µ = 1
(12.1)
(12.2)
Pour chaque cycle de calcul, la valeur instantanée du signal doit être convertie en une
variable linguistique sur laquelle porteront les règles d'inférence et la valeur de sa fonction
d'appartenance qui détermine la défuzzyfication.
J.-M. Allenbach 20.11.01
12–4
Réglage par logique floue
12.1.3 Règles d'inférence
Lorsqu'on a fuzzyfié toutes les grandeurs d'entrée, il s'agit de décrire le fonctionnement
global de l'installation, en se fondant sur une approche intuitive, souvent avec l'aide du
professionnel habitué à conduire manuellement la machiner qui doit être automatisée.
On établit donc les règles d'inférence qui décrivent ce fonctionnement, soit sous la
forme de tableau (ou matrice) soit sous la forme d'équations logiques.
Pour expliquer la méthode, on s'appuie sur un exemple:
Le chariot d'un distributeur de boissons en boîte est entraîné par un moteur à courant continu
auquel on applique une tension ub. Cette tension est décrite par une fuzzyfication uVL à 5
variables linguistiques. On a choisi deux grandeurs d'entrée: l'écart de réglage de position du
chariot e = w – y = x1 et sa vitesse y = x 2 . Ces entrées sont aussi décrites chacune par une
fuzzyfication à 5 variables linguistiques.
Si – par exemple – le chariot se trouve à une grande distance négative de la consigne
(x1 = NG), à peu près à l'arrêt (x2 = EZ), on appliquera une tension élevée aux bornes du
moteur (uVL = PG). Cette description linguistique peut être traduite par une équation logique.
si ( x1 = NG et x 2 = EZ) alors uVL = PG
(12.3)
On peut ainsi établir une liste d'équations logiques qui décrivent les diverses
conditions de fonctionnement, la machine se trouvant dans une ou une autre des conditions:
ces équations sont liées par un ou logique. Plutôt qu'une liste d'équations, on peut aussi
présenter une description sous forme de matrice.
uVL
NG
x2 = y
PG
PM
EZ
NM
NG
PM
PG
NM
NM
EZ
PM
PG
x1 = e
EZ
NG
NM
EZ
PM
PG
PM
PG
NG
NM
EZ
PM
NG
NM
Fig. 12.8 Matrice d'inférence à deux variables d'entrée: exemple du chariot distributeur de canettes.
L'équation (12.3) est transcrite dans la troisième case de la première colonne. Les cases
vides de la matrice n'entraînent aucune action, car il n'y a pas de règle; ce n'est pas gênant, car
ces cases correspondent le plus souvent à des événements impossibles, du moins en service
normal. Dans la représentation par matrice d'inférence, c'est toujours l'opérateur et qui relie les
conditions d'entrée d'une case: si l'opérateur ou relie deux conditions d'entrée, cela se traduit
dans la matrice par une colonne et une ligne complètes.
Dans certains cas de valeurs d'entrée, plusieurs règles peuvent être concernées comme
le montre l'exemple (12.1), à cause du recouvrement des fonctions d'appartenance.
J.-M. Allenbach 20.11.01
12–5
Réglage par logique floue
12.1.4 Méthodes d'inférence
Lorsqu'on a établi les règles d'inférence qui décrivent le fonctionnement, il faut
indiquer au calculateur la procédure – l'algorithme mathématique – qu'il doit employer pour
calculer une fonction de sortie µrés(urés) connaissant la valeur présente des entrées ainsi que les
règles d'inférence préétablies.
•
•
•
•
•
On recense plusieurs méthodes, décrites en détail à la section 12.4:
min–max
max–produit
somme–produit
TVFI
gamma
On illustre ici la méthode somme–produit – la plus usitée – par une exemple d'un
système à deux entrées et une sortie fuzzyfiées à trois variables linguistiques. Dans l'exemple
étudié, les conditions présentes des entrées sont les suivantes:
x1 = 0,44 et
x 2 = −0,67
(12.4)
Deux des règles sont concernées par ces valeurs d'entrée.
si( x1 = PG
et
x2 = EZ)
alors uVL = EZ
si( x1 = EZ
ou
x2 = NG ) alors uVL = NG
ou
(12.5)
Fig. 12.9 Exemple d'application de la méthode d'inférence somme–produit à deux variables d'entrée
On relève que la "somme" est en fait la "moyenne". Si les conditions d'entrée sont
telles qu'une seule règle est concernée, la "somme" des règles, illustrée à droite de la figure
J.-M. Allenbach 20.11.01
12–6
Réglage par logique floue
12.9, n'est simplement pas appliquée, ou si l'on préfère, la moyenne sur une seule variable est
la variable elle-même.
12.1.5 Défuzzyfication
La dernière étape consiste à transformer la fonction d'appartenance de sortie µrés(urés)
en une valeur xcm présente sur la grandeur de sortie. Là encore, plusieurs méthodes existent,
décrites à la section 12.5, dont la plus répandue est celle du centre de gravité. La figure 12.10
présente une exemple de résultat de méthode d'inférence.
µrés
+1
urés
–1
xcm
+1
Fig. 12.10 Défuzzyfication par la méthode du centre de gravité.
On calcule le centre de gravité de la figure comprise entre l'axe et la fonction de sortie
calculée par la méthode d'inférence.
+1
ò urés µrés ( urés ) d urés
x cm = −1 +1
ò µrés ( urés ) d urés
(12.6)
−1
Lorsqu'on peut décomposer la figure en n figures simples de surface Sk(µrés, urés) dont
le centre de gravité xk peut être calculé facilement, pour le centre de gravité global les
intégrales deviennent sommes.
n
å x k Sk
k =1
x cm = n
(12.7)
å Sk
k =1
Dans le cas d'une défuzzyfication après inférence par la méthode somme–produit avec
m règles, le calcul est simple. Il se base sur les surfaces Si des fonctions d'appartenance des
variables linguistiques définies pour le signal de sortie, pondérées par les facteurs
d'appartenance calculés par les règles. Le centre de gravité xi de chaque variable linguistique Si
se calcule sans peine pour les formes fréquentes; au besoin – par exemple pour des fonctions
J.-M. Allenbach 20.11.01
12–7
Réglage par logique floue
gaussiennes – le calcul du centre de gravité est fait une fois pour toute par calcul intégral; dans
tous les cas il est fait au début et stocké en mémoire.
m
å µci x i S i
x cm = i =1m
(12.8)
å µci S i
i =1
Après la défuzzyfication, il reste encore à appliquer le facteur d'échelle ke pour obtenir
le signal de commande ucm. Ce facteur a un rôle semblable au gain des régulateurs classiques,
ce n'est pas simplement l'inverse de l'opération de normalisation appliquée aux signaux
d'entrée.
u cm = k e x cm
(12.9)
Comme en réglage classique il y a lieu d'être prudent avec une augmentation deu
facteur d'échelle, afin de ne pas rendre le système instable.
12.1.6 Appréciation globale du réglage flou
Grâce aux logiciels proposés par plusieurs fournisseurs, la conception d'un régulateur
par logique floue est assez aisée, de même que son implantation sur un calculateur pour le
réglage en temps réel. On obtient rapidement un résultat assez bon. La difficulté est de passer
d'un réglage assez bon à un réglage très bon. En effet on ne dispose que peu d'indication sur la
marche à suivre pour modifier les règles, la fuzzyfication ou les méthodes d'inférence afin
d'améliorer un résultat connu.
Le réglage par logique floue peut paraître attractif pour qui est rebuté par les outils
mathématiques nécessaires au réglage classique ou au réglage d'état, continus ou échantillonnés, mais on se rend vite compte que cette technique exige aussi une connaissance
approfondie de l'installation à régler, ainsi qu'une robuste expérience professionnelle. Pire, les
très nombreux essais nécessaires à l'obtention d'un résultat satisfaisant ne permettent pas
d'échapper à des essais en simulation, qui nécessitent le développement d'un modèle de
simulation, imposant au concepteur des connaissances mathématiques et techniques aussi
pointues que celles auxquelles on espérait échapper.
Toutefois, grâce à ses caractéristique non linéaires, le régulateur par logique floue est
intéressant pour régler des systèmes qui eux aussi on un comportement non linéaire.
J.-M. Allenbach 20.11.01
12–8
Asservissements par logique floue
12.B
L'outil MATLAB
APPLICATION AVEC MATLAB
12.B.1 Principe
Le calcul en logique floue nécessite, outre la licence de base MATLAB, l'achat et
l'installation du Fuzzy Control Toolbox. Celui-ci met à 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.
12.B.2 Conception du régulateur
On accède à la fenêtre principale du «FIS Editor» par un instruction sur la ligne de
commande MATLAB:
» fuzzy
Fig. 12.B1 Fenêtre principale de l'éditeur de logique floue.
On y choisit premièrement le nombre d'entrées depuis la barre de menu: Edit → Add
input. On trouve alors sur la fenêtre principale du «FIS Editor» autant d'icônes qu'on veutde
signaux d'entrées et sorties, et une pour les règles d'inférence. La partie inférieure permet de
Jean-Marc Allenbach EIG
12–B1
2001.11.12
Asservissements par logique floue
L'outil MATLAB
spécifier les méthodes d'inférences. On accède alors à une fenêtre spécifique par un doubleclic sur l'icône du signal dont on veut spécifier les fonctions d'appartenance.
Fig. 12.B2 Fenêtre de l'éditeur de fonctions d'appartenance d'un signal.
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 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 à inputk attribué
par défaut.
Jean-Marc Allenbach EIG
12–B2
2001.11.12
Asservissements par logique floue
L'outil MATLAB
Fig. 12.B3 Fenêtre de l'éditeur de fonctions d'appartenance d'un signal: exemple.
Lorsque tous les signaux sont spécifiés, on ouvre l'éditeur des règles d'inférence:
Fig. 12.B4 Fenêtre de l'éditeur de règles d'inférence.
Jean-Marc Allenbach EIG
12–B3
2001.11.12
Asservissements par logique floue
L'outil MATLAB
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 somme (mean).
Pour les règles d'inférence, on préfère la méthode somme-produit: Implication: prod et
Aggregation: 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.
Fig. 12.B5 Fenêtre principale de l'éditeur de logique floue: exemple complété.
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.
12.B.3 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. Ce bloc doit être précédé de blocs gain chargés de la normalisation des
signaux et suivi d'un gain ajustable de l'amplification du régulateur.
Jean-Marc Allenbach EIG
12–B4
2001.11.12
Asservissements par logique floue
L'outil MATLAB
Fig. 12.B6 Schéma de régulation par logique floue.
Fig. 12.B7 Détail de régulateur par logique floue.
On peut alors exécuter une simulation.
Jean-Marc Allenbach EIG
12–B5
2001.11.12
Asservissements par logique floue
L'outil MATLAB
1.2
consigne
1
grandeur reelle
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
0
0.5
1
1.5
2
2.5
3
3.5
4
Fig. 12.B8 Exemple de réglage sur installation simulée pendant 4 [s].
12.B.4 Essai sur machine réelle
On doit disposer d'un outil qui permet de placer un bloc fonctionnel qui donne accès
aux interfaces d'entrée et sortie, par exemple le Realtime Interface développé par Vetsch
consulting.
Essai. fixed step, discrete, 3 [ms]
1
0.5
0
-0.5
0
0.5
1
1.5
2
2.5
3
3.5
4
Fig. 12.B9 Exemple de réglage sur installation réelle pendant 4 [s].
Jean-Marc Allenbach EIG
12–B6
2001.11.12

Documents pareils