Vous êtes sur la page 1sur 16
Centre de compétences en automatisation industrielle et productique Systèmes asservis Volume 5 R Asservissements par

Centre de compétences en

automatisation industrielle et productique

Systèmes

asservis

Volume 5 R

Asservissements par logique floue

(Résumé) J.-M. Allenbach

N° 129R Ecole d’Ingénieurs de Genève Laboratoire d’Automatique Edition 2001
N° 129R
Ecole d’Ingénieurs de Genève
Laboratoire d’Automatique
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 u u y cm FLC OCM S x s
v
G
w
u
u
y
cm
FLC
OCM
S
x
s

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 u cm 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.

Réglage par logique floue

w µµµµ µ rés v y u y y M N cm F R D
w
µµµµ
µ rés
v
y
u
y
y
M
N
cm
F
R
D
M
N
fuz
inf
fuz
x
y
u
u
s
VL
VL
rés
T
inf

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 n s et un choix de p

variables retenues, sa dimension sera de p × (n s +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.].

F fuz

Opération de fuzzification: création des variables linguistiques et de leurs fonction

d'appartenance.

T inf

Matrice d'inférence des variables linguistiques ou ensemble de règles d'inférences .

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.

R inf

D fuz

x s

y

M

y

N

µµµµ

y VL

u VL

u rés

µ rés

u cm

Opération de défuzzification pour créer le signal de commande.

Vecteur des grandeurs d'état du système à régler

Vecteur des grandeurs d'entrée choisies

Vecteur des variables d'entrée normalisées

Facteurs d'appartenance des variables linguistiques d'entrée

Fonctions d'appartenance des variables linguistiques d'entrée

Fonctions d'appartenance de la variable linguistique de sortie

Fonctions de sortie résultante de la défuzzification

Facteurs d'appartenance de la variable linguistique de sortie

Signal de commande

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(y max , –y min ). 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 y N +1 –1 –1
µ
Mesure
+1
y N
+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 y N +1 –1
Négatif
µ
Positif
1
y N
+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 y N +1 –1
Négatif
EZ
µ
1 Positif
y N
+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.

sont triangulaires, trapézoïdales ou gaussiennes. Fig. 12.6 Formes de fonction d'appartenance. J.-M.
sont triangulaires, trapézoïdales ou gaussiennes. Fig. 12.6 Formes de fonction d'appartenance. J.-M.

Fig. 12.6 Formes de fonction d'appartenance.

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 y N , on lui attribue une ou deux variables linguistiques y VL , avec un poids µ. C'est l'opération de fuzzyfication.

µ N EZ P 1 y N –1 –0,3 +0,6 +1
µ
N
EZ
P
1
y N
–1
–0,3
+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

y=

N

,

03

+ 06

,

y

y

y

VL

VL

VL

=

N

avec

µ 07

=

,

=

EZ

avec

µ 0 3

=

,

=

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.

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 u b . Cette tension est décrite par une fuzzyfication u VL à 5

variables linguistiques. On a choisi deux grandeurs d'entrée: l'écart de réglage de position du

chariot e = w y = x 1 et sa vitesse

= x 2 . Ces entrées sont aussi décrites chacune par une

y

fuzzyfication à 5 variables linguistiques. Si – par exemple – le chariot se trouve à une grande distance négative de la consigne (x 1 = NG), à peu près à l'arrêt (x 2 = EZ), on appliquera une tension élevée aux bornes du moteur (u VL = PG). Cette description linguistique peut être traduite par une équation logique.

si (xxNG et

1

2

==

EZ)

alors

u

VL

=

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
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.
u VL
NG
NM
x 1 = e
EZ
PM
PG
PG
NM
NG
x
y
2 =
PM
PM
EZ
NM
NG
EZ
PG
PM
EZ
NM
NG
NM
PG
PM
EZ
NM
NG
PG
PM

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.

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 (u ré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:

x

1 = 0,44

et

x

2

=−0,67

(12.4)

Deux des règles sont concernées par ces valeurs d'entrée.

si(

si(

x

x

1

1

= x PG et = EZ) alors 2 = x EZ ou = NG) alors
= x
PG
et
=
EZ)
alors
2
= x
EZ
ou
=
NG) alors
2

u

u

VL

VL

=

=

EZ

NG

ou

(12.5)

= x EZ ou = NG) alors 2 u u VL VL = = EZ NG

Fig. 12.9 Exemple d'application de la méthode d'inférence somme–produit à deux variables d'entrée

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

On relève que la "somme" est en fait la "moyenne".

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 (u rés ) en une valeur x cm 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.

une exemple de résultat de méthode d'inférence. µ rés +1 u rés –1 +1 x cm
µ rés +1 u rés –1 +1 x cm
µ rés
+1
u rés
–1
+1
x cm

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.

x

cm

+ 1

1

u

rés

µ

rés

(

uu )d

rés

rés

 

+

1

=

µ

rés

(

u

rés

)d

u

rés

1

(12.6)

Lorsqu'on peut décomposer la figure en n figures simples de surface S k (µ rés , u rés ) dont le centre de gravité x k peut être calculé facilement, pour le centre de gravité global les intégrales deviennent sommes.

x

cm

=

n

k = 1

x

k

S

k

n

k = 1

S

k

(12.7)

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 S i 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é x i de chaque variable linguistique S i se calcule sans peine pour les formes fréquentes; au besoin – par exemple pour des fonctions

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.

x

cm

=

m

i = 1

µ

ci

x

i

S

i

m

i = 1

µ

ci

S

i

(12.8)

Après la défuzzyfication, il reste encore à appliquer le facteur d'échelle k e pour obtenir le signal de commande u cm . 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

=

kx

e

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 échantil- lonné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.

Asservissements par logique floue

12.B

APPLICATION AVEC M ATLAB

12.B.1 Principe

L'outil MATLAB

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

un instruction sur la ligne de commande M ATLAB : » fuzzy Fig. 12.B1 Fenêtre principale

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

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 double- clic sur l'icône du signal dont on veut spécifier les fonctions d'appartenance.

dont on veut spécifier les fonctions d'appartenance. Fig. 12.B2 Fenêtre de l'éditeur de fonctions

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

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.

. On accède

Asservissements par logique floue

L'outil MATLAB

Asservissements par logique floue L'outil M ATLAB Fig. 12.B3 Fenêtre de l'éditeur de fonctions

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:

on ouvre l'éditeur des règles d'inférence: Fig. 12.B4 Fenêtre de l'éditeur de règles

Fig. 12.B4 Fenêtre de l'éditeur de règles d'inférence.

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.

» sans oublier l'encadrement d'apostrophes. Fig. 12.B5 Fenêtre principale de l'éditeur de logique

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.

Asservissements par logique floue

L'outil MATLAB

Asservissements par logique floue L'outil M ATLAB Fig. 12.B6 Schéma de régulation par logique floue. Fig.

Fig. 12.B6 Schéma de régulation par logique floue.

ATLAB Fig. 12.B6 Schéma de régulation par logique floue. Fig. 12.B7 Détail de régulateur par logique

Fig. 12.B7 Détail de régulateur par logique floue.

On peut alors exécuter une simulation.

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.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
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].