Qu'est-ce que la logique floue ? D'où vient-elle ? Et comment obtenir, en l'utilisant, une régulation d'excellente qualité, pour un coût équivalent à celui des systèmes traditionnels ?
En matière de régulation, l’évolution technique est une constante qui vise à améliorer la finesse du résultat, à faciliter l’utilisation, ou encore à suivre au plus près les réactions du système. À ce titre, les années 80 ont vu les concepts d’autoréglage et d’autoadaptation révolutionner le monde des régulateurs autonomes.
Parallèlement, la modélisation mathématique a permis d’améliorer encore ces résultats. Réservée à des gros systèmes informatiques, car gourmande en ressources, elle consiste à prévoir toutes les variations possibles du système. Seuls inconvénients, les temps de mise en œuvre et les performances du matériel nécessaire rendent son coût global d’exploitation inaccessible à la majorité des applications.
Le grand progrès de ces dernières années découle d’une nouvelle approche calquée sur le raisonnement humain plutôt que sur des calculs rigides. De cette approche est née la « logique floue ». Elle part d’un constat simple : pour calculer, un ordinateur est beaucoup plus rapide qu’un être humain ; en revanche, pour des problèmes mal posés ou mal définis, l’être humain est irremplaçable. Par exemple, nous reconnaîtrons un ami perdu de vue, même s’il a grandi, grossi ou s’il s’est laissé pousser sa barbe. Un ordinateur ne sait pas le faire.
Le concept de logique floue et ses origines
Les connaissances que nous avons d’une situation quelconque sont généralement imparfaites. Elles peuvent être incertaines (nous doutons de leur validité), ou imprécises (nous éprouvons une difficulté à les formuler clairement). Ces deux types d’imperfection dans les connaissances sont souvent intimement mêlés.
En ce qui concerne l’incertain, il a été abordé par la notion de probabilité, dès le XVIIᵉ siècle, par Pascal et Fermat. Pour l’imprécis, il faudra attendre 1978 pour qu’un chercheur américain, L. A. Zadeh, développe la « Théorie du raisonnement approché », plus connue sous le nom de « logique floue » (fuzzy logic, en anglais). Cette dernière associe les notions de « sous-ensemble flou » et de « théorie des possibilités ».
Le sous-ensemble flou
Le sous-ensemble flou permet de graduer l’appartenance d’un élément à une classe. Par exemple, un litre d’eau à la température de 20 °C n’appartient pas du tout à la classe « eau chaude ». En revanche, si sa température est de 90 °C, il y appartient tout à fait. Plus sa température se rapproche de 90 °C, plus son appartenance à la classe « eau chaude » est forte (figure 1).
Cette notion permet l’utilisation de catégories aux limites mal définies (comme « grand » ou « petit », « jeune » ou « âgé »), le passage progressif d’une propriété à une autre (de « tiède » à « chaud »), l’utilisation de valeurs approximatives (comme « environ 12 ans »). Elle évite l’utilisation de limites rigides. En effet, il serait aberrant de considérer qu’une eau à 85 °C est froide, si elle est considérée comme chaude à 90 °C.
Un élément peut aussi appartenir à plusieurs classes. Ainsi, une eau à 55 °C appartient à 50 % à la classe « eau chaude » et à 100 % à la classe « eau tiède ».
La théorie des possibilités
La théorie des possibilités permet de raisonner sur des connaissances imprécises ou vagues. Elle prend en compte les incertitudes sur ces connaissances.
Ainsi, on dira dans quelle mesure un événement peut se réaliser, avec quel degré de certitude et ce, sans avoir à sa disposition l’évaluation de la probabilité de cette réalisation.
La commande floue
Comme une commande classique, la commande floue a pour objet la gestion automatique d’un processus en fonction d’une consigne donnée, par action sur les variables d’entrée.
Un système flou peut être vu comme un système expert simple, fonctionnant à partir d’une représentation des connaissances basée sur les ensembles flous (figure 2).
La base de connaissances contient les définitions des termes utilisés par la commande (entrée), les règles caractérisant la cible de la commande (sortie) et décrit le raisonnement de l’expert (algorithme).
La fuzzification permet de transformer la variable d’entrée en variable correspondant à des termes linguistiques (grand, petit, chaud, froid, etc.).
La défuzzification permet une action précise à partir des décisions floues.
Les inférences ou règles sont les raisonnements du système en fonction des bases établies.
Les régulateurs « flous »
Il existe deux types de régulateurs flous. Le premier allie PID et logique floue. Il assure ainsi une continuité avec les appareils PID de précédente génération, en permettant à l’utilisateur d’intervenir sur les réglages. La logique vient ici en correction du PID.
Le second, uniquement flou, se comporte comme une boîte noire et se passe de toute intervention humaine. Ici, ce sont les connaissances et l’expérience du fabricant qui donnent la qualité du résultat. Mieux il aura appréhendé le problème, mieux il aura établi ses règles, meilleure sera la régulation.
Les avantages apportés par la logique floue
La logique floue évite les « overshoot » (dépassement de consigne) à la montée en température, et permet une meilleure stabilité de température pour un système soumis à des variations brutales de charge (figure 3).
La logique floue permet aussi de changer la valeur de consigne, sur une plage importante, sans avoir à recalculer le PID.
La logique floue est maintenant disponible sur des régulateurs autonomes, à des prix tout à fait comparables à ceux de régulateurs classiques. Et surtout, elle leur confère l’avantage d’une mise en œuvre aisée, puisque totalement automatique.
Le fonctionnement du contrôleur flou
Les contrôleurs flous utilisent en général une expertise exprimée sous forme de règles. Pour un contrôleur à deux entrées X1 et X2 et à une sortie Y, la
Fig. 5 : Degré d’appartenance des variables.
Fig. 6 : Application des règles 1 et 2 aux valeurs d’entrée et déduction de la valeur unique de sortie.
forme des règles peut être la suivante :
Règle n°1 : si « X1 est A1 » ET « X2 est B2 », alors « Y est C3 »,
Règle n°2 : si « X1 est A3 » ET « X2 est B1 », alors « Y est C2 ».
L’expression « X1 est A1 ET X2 est B2 » est la condition ou prémisse de la règle 1. L’expression « Y est C3 » est la conclusion de cette règle. ET est l’opérateur de règle.
Une règle peut comporter un ou plusieurs opérateurs : ET, OU, NON.
La fuzzification
Les variables d’entrée X1 et X2 (mesures de température, de débit, de pression, …) doivent être converties en variables floues ou variables linguistiques pour pouvoir y appliquer ces règles. C’est ce qui est appelé la fuzzification. Une variable floue est alors représentée par un triplet [V, X, Tv], dans lequel :
• V est la variable (température réelle par exemple),
• X est un ensemble de références (par exemple l’ensemble R+ des entiers positifs),
• Tv est un ensemble de sous-ensembles flous de X utilisés pour caractériser V. Ils définissent les restrictions des valeurs que prend V dans X.
Étudions un exemple précis :
V = 165 °C X = R+ Tv = (Très froid = A1, Froid = A2, Chaud = A3, Très chaud = A4)
La figure 4 nous montre que la température de 165 °C appartient à 30 % aux classes « froid » et « chaud ». L’ensemble des valeurs de la variable floue correspondante est ainsi [165, R+, 0,3(A2)] et [165, R+, 0,3(A3)].
Le traitement des règles
Le contrôleur flou a pour objet de fournir une valeur de commande pour un jeu de variables physiques d’entrée X1 et X2.
Étudions le cas particulier de la règle 1 évoquée ci-dessus :
μA1(X1) est la valeur du degré d’appartenance de X1 à A1. μB2(X2) est celle du degré d’appartenance de X2 à B2. En combinant ces deux valeurs (il existe plusieurs sortes d’opérateurs pour cela), on obtient la valeur à affecter à l’ensemble flou de sortie C3.
En prenant par exemple la méthode de Mamdani, on retient la plus petite des valeurs de μ, et cette valeur minimum définit le niveau maximum que l’on impose à la variable floue C3 de sortie. On fait de même pour chacune des règles de la base de connaissances. Ainsi, pour un jeu X1 et X2 de variables physiques d’entrée, on obtient un jeu de variables floues de sortie, chacune de ces variables floues étant un ensemble de valeurs.
On procède ensuite à une agrégation des règles. Cela consiste à combiner toutes les valeurs des variables floues de sortie, obtenues par le traitement des différentes règles. Il existe différents types d’opérateurs pour faire cette combinaison, le plus classique consistant à retenir à chaque fois le degré d’appartenance maximum. Il en résulte alors une valeur floue unique de sortie Y.
La défuzzification
Mais, Y étant une variable floue, elle comporte une multitude de valeurs élémentaires. Il faut alors procéder à une opération de défuzzification, dont le but est de calculer la valeur y qui sera effectivement envoyée au processus. Des différentes méthodes disponibles, la plus connue consiste à calculer le centre de gravité de l’ensemble flou Y et à retenir cette valeur pour la commande y.
Exemple pratique : le freinage d’un véhicule (voir figure ci-dessus)
Quel freinage faut-il appliquer au véhicule de gauche compte tenu de sa vitesse x2 et de la distance x1 qui le sépare du véhicule précédent ? Données : x1 = 30 m, x2 = 40 km/h
La base de connaissance :
- Règle n°1 : si la distance entre les deux véhicules est faible et que la vitesse de la voiture est moyenne, appliquer un freinage élevé pour obtenir une réduction rapide de la vitesse.
- Règle n°2 : si la distance entre les deux véhicules est assez importante et que la vitesse de la voiture est élevée, alors freiner modérément.
La fuzzification :
F = Faible M = Moyen E = Élevé
Le raisonnement flou :
En appliquant les deux règles aux valeurs x1 et x2, on obtient deux valeurs Y de freinage (figure 6). En calculant la position du centre de gravité, on déduit la valeur qui sera effectivement retenue pour le freinage à appliquer.
Bibliographie
- Bernadette Bouchon-Meunier, La logique floue, PUF, collection « Que sais-je ? »
- « Mesures », n° 668 d’octobre 1994 – Formation – Fiche n°68.