Commande floue : Mamdani et Sugeno, du ventilateur au pendule inversé sur un chariot
Le régulateur et la rétroaction, fuzzification, inférence et défuzzification, centre de gravité, bissectrice et moyenne des maxima, le régulateur de Takagi–Sugeno, les surfaces de commande et un régulateur flou qui maintient une tige en équilibre sur un chariot.
Série Bases de l’IA Partie 35 sur 52
- Carte de l’intelligence artificielle : qu’est-ce qui est quoi et comment tout s’emboîte
- Brève histoire de l’intelligence artificielle : de Turing aux modèles de langage
- Données, modèle, entraînement, inférence : les notions de base sur un seul exemple
- Lire la notation mathématique : symboles, indices, sommes et quantificateurs
- Ensembles et relations : les briques dont sont faites les définitions en IA
- Fonctions et applications : pourquoi tout modèle d’IA est une fonction
- Logique et démonstrations : les règles selon lesquelles on raisonne en IA
- Graphes et arbres : la structure sur laquelle reposent la recherche et les réseaux de neurones
- Algèbre linéaire pour l’apprentissage automatique : vecteurs, matrices et pourquoi l’IA multiplie surtout
- Dérivées, gradient et règle de dérivation en chaîne : comment un modèle sait dans quelle direction apprendre
- Descente de gradient : comment un modèle apprend
- Qu’est-ce que la probabilité : du lancer de dé aux axiomes de Kolmogorov
- Probabilité conditionnelle et théorème de Bayes : comment réviser une estimation quand on apprend du nouveau
- Variable aléatoire et fonction de répartition : une seule fonction qui dit tout de la loi
- Fonction de densité et fonction de masse : pourquoi une variable continue a une probabilité nulle en chaque point
- Espérance, variance et covariance : où se situe une loi, quelle est sa largeur et ce qui varie avec quoi
- Panorama des lois de probabilité : Bernoulli, binomiale, Poisson, uniforme, normale et exponentielle
- Loi des grands nombres et théorème central limite : pourquoi les moyennes sont si prévisibles
- Statistique et estimation de paramètres : maximum de vraisemblance, MAP et intervalles de confiance
- Théorie de l’information : entropie, entropie croisée et divergence KL — d’où viennent les fonctions de perte
- Recherche dans l’espace d’états : BFS, DFS, UCS et A* en animations
- Jeux et adversaires : minimax, élagage alpha-bêta et Monte Carlo tree search
- Satisfaction de contraintes : backtracking, propagation de contraintes et AC-3 sur un sudoku et une carte des régions tchèques
- Logique et systèmes à base de connaissances : chaînage avant et arrière, résolution et systèmes experts
- Planification : STRIPS, monde des blocs, heuristiques par relaxation et planification dans les agents IA
- Recherche locale et recuit simulé : un voyageur de commerce à travers les chefs-lieux de région tchèques
- Algorithmes génétiques : population, croisement, mutation et sélection sur un sac à dos de randonnée
- Stratégies d’évolution et programmation génétique : de la règle du cinquième à la loi de Kepler
- Optimisation par colonies de fourmis : comment une piste de phéromone trouve un chemin court
- Optimisation par essaim de particules : inertie, expérience propre et expérience de l’essaim
- Neuroévolution : faire évoluer les poids et la forme des réseaux de neurones, et l’algorithme NEAT
- Ensembles flous et fonctions d’appartenance : comment écrire « un peu chaud »
- Logique floue et probabilité : pourquoi « un peu chaud » ne veut pas dire « probablement chaud »
- Logique floue : t-normes, implications et règles SI–ALORS
- Commande floue : Mamdani et Sugeno, du ventilateur au pendule inversé sur un chariot
- Clustering flou : l’algorithme fuzzy c-means et les points entre les clusters
- Systèmes neuro-flous (ANFIS) : des règles floues qui apprennent à partir des données
- Chaînes de Markov : matrice de transition, distribution stationnaire et PageRank
- Modèles de Markov cachés : l’algorithme de Viterbi et le casino malhonnête
- Réseaux bayésiens : pourquoi l’herbe est mouillée et ce que cela implique pour l’arroseur
- Le filtre de Kalman : comment estimer, à partir de mesures imprécises, où se trouve une voiture et à quelle vitesse elle roule
- Types d’apprentissage automatique : supervisé, non supervisé, semi-supervisé et plus
- Prompts, contexte et RAG : comment donner au modèle les bonnes informations
- Autoencodeurs variationnels (VAE) : de nouvelles images à partir d’un espace latent continu
- Réseaux antagonistes génératifs (GAN) : le faussaire contre le détective
- Modèles de diffusion : comment une image naît du bruit pur
- Processus de décision markoviens : états, actions, récompenses et équations de Bellman
- Q-learning et DQN : apprendre la valeur des actions, du tableau au réseau de neurones
- Policy gradient et PPO : apprendre directement la politique
- Comment fonctionne un agent IA : un modèle de langage en boucle avec des outils
- Programmer avec des agents IA : consigne, tests et vérification
- Évaluation et sécurité des systèmes d’IA : comment mesurer et comment surveiller
Programme complet de la série 52 sur 83 sujets publiés
- Comment un régulateur flou transforme une mesure en action : fuzzification, inférence et défuzzification.
- Ce qui distingue les régulateurs de Mamdani et de Sugeno, et pourquoi le centre de gravité n’atteint pas les bords de la plage.
- Comment neuf règles maintiennent une tige sur un chariot — et pourquoi il leur faut encore un terme linéaire pour retenir le chariot.
Utile à connaître avant : Logique floue : t-normes, implications et règles SI–ALORS
En 1974, Ebrahim Mamdani était penché, dans un laboratoire londonien, sur une petite machine à vapeur que les méthodes classiques ne parvenaient pas à commander. Un opérateur expérimenté la pilotait pourtant sans difficulté — selon des règles comme « si la pression est un peu élevée et augmente, réduis un peu la vapeur ». Avec son étudiant Sedrak Assilian, Mamdani a écrit ces règles en logique floue et les a laissées commander la machine. Cela a fonctionné. Dix ans plus tard, des régulateurs flous commandaient des fours à ciment, et quelques années après, des métros et des lave-linge. Dans la partie précédente, nous avons appris à évaluer des règles ; nous allons maintenant en faire un régulateur qui produit un seul nombre — et le laisser tenir une tige en équilibre.
Cette partie fait suite à Logique floue : t-normes, implications et règles SI–ALORS et à Neuroévolution, à laquelle nous empruntons le pendule inversé sur un chariot.
1. Le régulateur et la rétroaction
Définition — régulateur
Un régulateur est une application u = R(x) qui associe à l’état mesuré du système x une action de commande u. En boucle fermée, l’action se répercute sur le système, celui-ci change, on le mesure à nouveau et le régulateur agit de nouveau — typiquement des dizaines à des milliers de fois par seconde.
Un thermostat mesure la température et allume le chauffage ; la température change, le thermostat la mesure à nouveau. Le régulateur est la règle « que faire quand je vois ceci ». La théorie classique de la commande le conçoit à partir des équations du système. Un régulateur flou le compose de règles telles que les formulerait une personne expérimentée.
Définition — boucle fermée en temps discret
L’ordinateur mesure et agit par pas de durée Δt. L’état xk au pas k évolue selon les équations du mouvement du système F et l’action du régulateur :
uk = R(xk), xk+1 = F(xk, uk), k = 0, 1, 2, …
Le régulateur ne voit donc ni l’avenir ni les équations F — seulement la mesure actuelle. Pour le pendule de la fin de cette partie, Δt = 0,02 s, si bien qu’une minute de commande représente 3 000 pas de la boucle.
2. Les trois étapes d’un régulateur flou
- La fuzzification convertit les mesures nettes en degrés d’appartenance : 27 °C est « agréable » à 0,2 et « chaud » à 0,83, une humidité de 60 % est « humide » à 0,67.
- L’inférence évalue les règles comme l’a montré la partie précédente : chaque règle a une force et écrête sa conclusion ; les conclusions sont combinées par l’union (le maximum).
- La défuzzification fait de l’ensemble flou obtenu un seul nombre, qui est envoyé au moteur.
Exemple — fuzzification de 27 °C et 60 %
Termes de la partie précédente : agréable est un trapèze (10, 17, 23, 28), chaud un triangle (22, 28, 34), torride un trapèze (30, 36, 40, 40) ; sec est un trapèze (0, 0, 30, 50), humide (40, 70, 100, 100). Sur le bord descendant d’un trapèze (a, b, c, d), μ(x) = (d − x) / (d − c), sur le bord montant (x − a) / (b − a).
- agréable(27) = (28 − 27) / (28 − 23) = 1/5 = 0,2,
- chaud(27) = (27 − 22) / (28 − 22) = 5/6 ≈ 0,83 (27 se trouve sur le bord montant),
- froid(27) = torride(27) = 0 — 27 est hors de leurs supports,
- humide(60) = (60 − 40) / (70 − 40) = 2/3 ≈ 0,67, sec(60) = 0 (le support se termine à 50).
L’inférence selon Mamdani est une formule unique qui compose l’ensemble flou de sortie à partir des conclusions écrêtées :
μout(y) = maxi min( αi, μBi(y) ), αi = T(μAi1(x1), …, μAin(xn))
- μout(y)
- ensemble flou de sortie — pour chaque valeur possible de la sortie y, il indique à quel point les règles la soutiennent ; c’est une fonction entière, pas un nombre, c’est pourquoi il faut encore une défuzzification (sur la figure ci-dessous, c’est la surface verte)
- αi
- force de la i-ième règle — la t-norme T (ici le minimum) combine les conditions « et » ; une règle ne peut pas être plus vraie que sa condition la plus faible
- μBi(y)
- conclusion de la règle, par exemple « rapide » — la forme qu’aurait la sortie si la règle était pleinement vraie
- min
- écrêtage — la conclusion ne peut être soutenue qu’autant que la prémisse est vraie ; une règle faible donne ainsi un « plateau » bas
- maxi
- union des règles — les règles sont comprises comme des alternatives (« ou »), si bien que la valeur y est soutenue autant que la soutient la règle la plus forte
Exemple — ensemble de sortie du ventilateur
Forces des règles : R1 (froid ou agréable → lent) a α1 = max(0 ; 0,2) = 0,2 ; R2 (chaud et sec → moyen) min(0,83 ; 0) = 0 ; R3 (chaud et humide → rapide) min(5/6 ; 2/3) = 2/3 ; R4 (torride → rapide) 0.
Lent est un trapèze (0, 0, 20, 45), écrêté à la hauteur 0,2 : un plateau de 0,2 jusqu’à y = 40 (là, le bord descendant (45 − y)/25 tombe à 0,2), puis une descente jusqu’à zéro en 45. Rapide est un trapèze (55, 80, 100, 100), écrêté à 2/3 : le bord (y − 55)/25 atteint 2/3 en y = 55 + 25 · 2/3 ≈ 71,67. Résultat :
μout(y) = 0,2 sur [0 ; 40], (45 − y)/25 sur [40 ; 45], 0 sur [45 ; 55], (y − 55)/25 sur [55 ; 71,67] et 2/3 sur [71,67 ; 100].
Le régulateur complet en pseudocode, avec l’axe de sortie découpé en grille :
def mamdani(vstup, pravidla, mrizka): # mrizka = 0 ; 0,1 ; … ; 100
sily = []
for r in pravidla: # 1. fuzzification + force de la règle :
sily.append(min( # « et » = minimum, « ou » = maximum
max(mu(t, vstup[prom]) for t in terminy)
for prom, terminy in r.kdyz))
vystup = [max(min(a, r.pak(y)) for a, r in zip(sily, pravidla))
for y in mrizka] # 2. écrêtage et union par le maximum
citatel = sum(y * m for y, m in zip(mrizka, vystup))
jmenovatel = sum(vystup) # 3. défuzzification par le centre de gravité
return citatel / jmenovatel if jmenovatel > 0 else 50
3. Défuzzification
Définition — méthodes de défuzzification
Pour un ensemble flou de sortie de fonction d’appartenance μ sur l’intervalle des sorties :
- Centre de gravité (centroïde) : y* = ∫ y μ(y) dy / ∫ μ(y) dy.
- Bissectrice : la valeur y* pour laquelle l’aire sous μ à gauche est égale à celle de droite.
- Moyenne des maxima : la moyenne des points où μ atteint son maximum.
L’ensemble obtenu ressemble à un petit tas de sable versé au-dessus de l’axe de la vitesse de rotation. Le centre de gravité est l’endroit où le tas s’équilibrerait sur une planche ; la bissectrice le partage en deux moitiés de même taille ; la moyenne des maxima ne regarde que la partie la plus haute et ignore le reste.
y* = ∫ y · μ(y) dy / ∫ μ(y) dy
- y*
- sortie nette — un seul nombre, qui est envoyé au moteur, car le moteur ne comprend pas les ensembles flous
- y
- position sur l’axe de la vitesse de rotation — le « bras de levier » ; chaque valeur vote pour elle-même
- μ(y)
- poids du vote — les valeurs que les règles soutiennent davantage tirent plus fort le résultat (la surface verte sur la figure)
- ∫ μ(y) dy
- aire totale — la division transforme la somme pondérée en moyenne pondérée ; sans elle, le résultat croîtrait avec le nombre de règles qui se déclenchent, et non selon l’endroit qu’elles désignent
Pour notre entrée, le centre de gravité donne 65,9 %, la bissectrice 75,3 % et la moyenne des maxima 85,9 %. La différence tient au poids accordé à la règle plus faible R1 (« lent » avec une force de 0,2) : le centre de gravité en tient entièrement compte, la moyenne des maxima pas du tout. Le centre de gravité est le plus utilisé, car la sortie varie de façon continue. Mais il a un défaut : il n’atteint jamais les bords de la plage. Même si seule la règle « rapide » se déclenche, le centre de gravité de son trapèze se trouve à 83 %, et non à 100 %.
Exemple — centre de gravité, bissectrice et moyenne des maxima à la main
L’ensemble de sortie de la section sur les étapes se compose de rectangles et de triangles, si bien que nous calculons les intégrales à partir d’aires et de centres de gravité connus (le centre de gravité d’un triangle rectangle se trouve au tiers depuis son côté vertical) :
| Segment | Forme | Aire | Centre de gravité | Aire · centre de gravité |
|---|---|---|---|---|
| [0 ; 40] | rectangle de hauteur 0,2 | 8 | 20 | 160 |
| [40 ; 45] | triangle, décroissant | 0,5 | 41,67 | 20,83 |
| [55 ; 71,67] | triangle, croissant | 5,56 | 66,11 | 367,28 |
| [71,67 ; 100] | rectangle de hauteur 2/3 | 18,89 | 85,83 | 1 621,30 |
| total | 32,94 | 2 169,41 |
- Centre de gravité : y* = 2 169,41 / 32,94 ≈ 65,85 %. L’ordinateur, dans
src/fuzzyrizeni.js, remplace l’intégrale par une somme par pas de 0,1 % et obtient 65,87 — les deux s’arrondissent à 65,9 %. - Bissectrice : la moitié de l’aire vaut 16,47. Jusqu’au point 71,67, on accumule 8 + 0,5 + 5,56 = 14,06 ; il manque 2,41 ; sur le plateau de hauteur 2/3, cela fait 2,41 / (2/3) ≈ 3,62 plus loin, donc y* ≈ 75,3 %.
- Moyenne des maxima : le maximum 2/3 est atteint sur tout [71,67 ; 100], la moyenne des extrémités vaut (71,67 + 100)/2 ≈ 85,8 %. L’ordinateur fait la moyenne des points de la grille à partir de 71,7, d’où 85,9 %.
4. Takagi–Sugeno
La défuzzification par le centre de gravité oblige à calculer une intégrale — en 1985, sur le petit processeur d’un lave-linge ou d’une caméra, c’était coûteux. Tomohiro Takagi et Michio Sugeno ont donc proposé des règles qui renvoient directement un nombre.
Définition — régulateur de Takagi–Sugeno
Une règle a la forme SI x1 est A1 et … et xn est An, ALORS y = f(x1, …, xn). Pour un Sugeno d’ordre zéro, f est une constante, pour un Sugeno du premier ordre, une fonction linéaire c0 + c1x1 + … + cnxn.
La sortie est la moyenne pondérée des conclusions, les poids étant les forces des règles : y* = ∑i αi fi / ∑i αi.
Chaque règle ne dit pas « la vitesse est rapide » (un ensemble flou), mais « la vitesse est de 90 % » (un nombre). Le résultat est la moyenne des propositions de toutes les règles, pondérée par le degré auquel chaque règle est vraie. Pas d’intégrale, juste quelques multiplications et une division.
Donnons au ventilateur les mêmes règles, mais avec des conclusions constantes : lent = 15 %, moyen = 50 %, rapide = 90 %. À 27 °C et 60 % d’humidité, la sortie vaut (0,2 · 15 + 2/3 · 90) / (0,2 + 2/3) = 63 / 0,867 ≈ 72,7 %.
y* = ∑i αi · fi / ∑i αi
- y*
- sortie nette — directement, sans ensemble flou de sortie et sans défuzzification
- αi
- force de la règle, la même que chez Mamdani — elle détermine le poids du vote de la règle
- fi
- proposition de la règle — un nombre (ordre 0) ou une fonction linéaire des entrées (ordre 1) ; elle remplace toute la forme « rapide » par un unique représentant
- ∑i
- somme des votes de toutes les règles — les règles qui ne sont pas vraies (αi = 0) apportent zéro
- ∑i αi
- normalisation — les poids αi / ∑ αk ont pour somme 1, si bien que le résultat est une moyenne des propositions et ne dépend pas de la force avec laquelle toutes les règles sont vraies ensemble
Théorème — un Sugeno d’ordre zéro atteint les bords
Si au moins une règle est vraie (∑ αi > 0), la sortie d’un Sugeno d’ordre zéro se situe entre la plus petite et la plus grande constante des règles qui sont vraies : min fi ≤ y* ≤ max fi. Si seules sont vraies des règles de même constante c, alors y* = c exactement.
Démonstration : notons λi = αi / ∑k αk. Alors λi ≥ 0, ∑ λi = 1 et y* = ∑ λi fi est une combinaison convexe, qui ne peut pas sortir de [min fi, max fi]. Si tous les fi avec λi > 0 sont égaux à c, alors y* = c ∑ λi = c. ∎
Le centre de gravité de Mamdani n’offre pas une telle garantie : même la seule conclusion « rapide » à pleine hauteur a son centre de gravité à 83 %, car son bord montant à partir de 55 % entre lui aussi dans la moyenne.
5. La surface de commande
Le régulateur est une fonction de deux variables, on peut donc le dessiner en entier. Chaque case est une combinaison de température et d’humidité, la luminosité indique à quelle vitesse tourne le ventilateur :
Les deux surfaces se ressemblent — en dessous de 20 °C lentement, avec la chaleur et l’humidité rapidement — et varient en douceur, sans sauts. Elles diffèrent sur les bords. À 35 °C et 90 % d’humidité, Sugeno donne exactement 90 %, Mamdani seulement 82,2 % ; au frais, à 15 °C, Sugeno donne 15 %, Mamdani 18,4 %. C’est le défaut du centre de gravité : le régulateur de Mamdani n’atteint jamais les bords. Au milieu, là où les règles se chevauchent, les deux se comportent aussi différemment, car ils font la moyenne de propositions de formes différentes.
Définition — surface de commande
La surface de commande d’un régulateur à deux entrées est le graphe de la fonction R : [0 ; 40] °C × [0 ; 100] % → [0 ; 100] %, c’est-à-dire l’ensemble {(T, h, R(T, h))}. La figure l’évalue sur une grille de 41 températures (par pas de 1 °C) × 26 humidités (par pas de 4 %).
Exemple — coin de la surface : 35 °C et 90 %
torride(35) = (35 − 30) / (36 − 30) = 5/6 ≈ 0,83, chaud(35) = 0 (le triangle se termine à 34), agréable et froid valent 0. Seule la règle R4 (torride → rapide) est vraie, avec une force de 0,83.
- Sugeno : y* = 0,83 · 90 / 0,83 = 90 % — exactement, d’après le théorème ci-dessus.
- Mamdani : « rapide » écrêté à 5/6 est un triangle sur [55 ; 75,83] (aire ½ · 20,83 · 5/6 ≈ 8,68, centre de gravité 55 + ⅔ · 20,83 ≈ 68,89) et un rectangle sur [75,83 ; 100] (aire 24,17 · 5/6 ≈ 20,14, centre de gravité 87,92). y* = (8,68 · 68,89 + 20,14 · 87,92) / (8,68 + 20,14) ≈ 82,2 %.
Dans l’autre coin, 15 °C et 30 %, agréable(15) = (15 − 10) / (17 − 10) ≈ 0,71 et seule R1 est vraie ; Sugeno donne exactement 15 %, le centre de gravité de « lent » écrêté 18,4 %.
6. Le pendule flou
Dans la partie sur la neuroévolution, la tige était tenue en équilibre sur le chariot par un réseau dont les poids avaient été trouvés par l’évolution. Essayons maintenant des règles qu’écrirait un humain. Les entrées sont l’angle de la tige et sa vitesse angulaire, chacune avec trois termes — négatif, nul et positif ; la sortie est une force de −10 à +10 N, avec un Sugeno d’ordre zéro :
| angle \ vitesse angulaire | tombe à gauche | immobile | tombe à droite |
|---|---|---|---|
| penchée à gauche | −10 N | −5 N | 0 N |
| verticale | −5 N | 0 N | +5 N |
| penchée à droite | 0 N | +5 N | +10 N |
Neuf règles comme « SI la tige est penchée à droite ET tombe à droite, ALORS pousse fortement le chariot vers la droite ». La logique est la même que pour un balai tenu en équilibre sur la paume : la main passe sous la tige du côté où elle tombe.
Définition — régulateur flou du pendule
L’état est (x, ẋ, θ, θ̇) comme dans la partie sur la neuroévolution, avec un pas de 0,02 s. Termes de l’angle θ (en degrés) : nul est un triangle (−6, 0, 6), positif un trapèze (0, 6, 90, 90) — il croît de 0° à 6° et vaut ensuite 1 —, négatif symétriquement. Les termes de la vitesse angulaire θ̇ (°/s) ont la même forme avec 40 au lieu de 6 (et 900 au lieu de 90).
La force de la règle aux termes a (angle) et b (vitesse) est wab = min(μa(θ), μb(θ̇)), la conclusion cab est le nombre du tableau et la force exercée sur le chariot vaut F = ∑ wab cab / ∑ wab, écrêtée à [−10 ; 10] N.
Exemple — tige inclinée de 2° qui tombe à 10 °/s vers la droite
Angle : nul(2) = (6 − 2)/6 = 2/3, positif(2) = 2/6 = 1/3. Vitesse : nul(10) = (40 − 10)/40 = 0,75, positif(10) = 10/40 = 0,25. Les termes négatifs valent 0, si bien que quatre règles sont vraies :
- verticale et immobile : w = min(2/3 ; 0,75) = 2/3, conclusion 0 N,
- verticale et tombe à droite : w = min(2/3 ; 0,25) = 0,25, conclusion +5 N,
- à droite et immobile : w = min(1/3 ; 0,75) = 1/3, conclusion +5 N,
- à droite et tombe à droite : w = min(1/3 ; 0,25) = 0,25, conclusion +10 N.
F = (2/3 · 0 + 0,25 · 5 + 1/3 · 5 + 0,25 · 10) / (2/3 + 0,25 + 1/3 + 0,25) = 5,417 / 1,5 ≈ 3,61 N vers la droite — le chariot passe sous la tige.
La tige tient — au bout de quelques secondes, l’angle est pratiquement nul. Mais le chariot dérive lentement, car les règles ne disent rien du chariot, et au bout de 22 secondes il sort du rail. Depuis les trois départs de la partie sur la neuroévolution, le régulateur a tenu 22, 12,9 et 15,7 s.
Corrigeons cela avec un Sugeno du premier ordre : à chaque constante du tableau, nous ajoutons 1 · x + 2 · ẋ, où x est la position du chariot et ẋ sa vitesse. Le régulateur tient maintenant la tige depuis les trois départs pendant une minute entière, et le chariot s’éloigne du centre de 0,58 m au plus. Le signe est intéressant : quand le chariot dérive vers la droite, le régulateur le pousse encore plus vers la droite. La tige s’incline alors vers la gauche — et les règles sur la tige ramènent ensuite le chariot. Les signes opposés « intuitifs », qui pousseraient le chariot directement vers le centre, font tomber la tige en moins de cinq secondes. Les règles d’un opérateur expérimenté sont donc précieuses justement parce qu’elles codent une expérience qu’un profane n’inventerait pas.
F = ∑ wab cab / ∑ wab + kx x + kv ẋ
- F
- force exercée sur le chariot (avant l’écrêtage à ±10 N)
- ∑ wab cab / ∑ wab
- le Sugeno d’ordre zéro d’origine — neuf règles sur la tige ; il la maintient verticale, mais ne sait rien du chariot
- kx x
- réaction à la position du chariot, kx = 1 N/m — sans elle, le chariot sortirait impunément du rail ; le signe positif semble envoyer le chariot vers l’extérieur, mais il incline ainsi la tige vers l’intérieur, et les règles sur la tige ramènent ensuite le chariot
- kv ẋ
- réaction à la vitesse du chariot, kv = 2 N·s/m — amortissement ; avec la position seule (kv = 0), le chariot oscille de plus en plus autour du centre et, depuis les trois départs, sort du rail en 32 à 53 s
Dans l’exemple ci-dessus, avec le chariot à 0,3 m à droite qui roule à 0,1 m/s vers la droite, on obtient donc F = 3,61 + 1 · 0,3 + 2 · 0,1 ≈ 4,11 N.
7. Mamdani ou Sugeno ?
| Mamdani | Sugeno | |
|---|---|---|
| Conclusion de la règle | ensemble flou (« rapide ») | nombre ou fonction linéaire |
| Sortie | défuzzification, généralement par le centre de gravité | moyenne pondérée |
| Calcul | intégrale sur la sortie | quelques multiplications |
| Lisibilité | des règles comme des phrases | des nombres dans les conclusions |
| Bords de la plage | le centre de gravité ne les atteint pas | atteints |
| Apprentissage à partir de données | difficile | les paramètres des conclusions peuvent être ajustés — voir ANFIS |
Mamdani convient là où des humains écrivent et lisent les règles. Sugeno, là où la vitesse de calcul compte et où l’on veut ajuster le régulateur à partir de données mesurées — c’est le sujet de la dernière partie du module.
8. Les régulateurs flous en pratique
- Le four à ciment de l’entreprise danoise F. L. Smidth a été, vers 1980, l’un des premiers déploiements industriels — un four est difficile à modéliser, mais les opérateurs le pilotaient d’après leur expérience.
- Le métro de Sendai (1987) démarre et freine selon des règles floues ; la conduite est plus souple, et le constructeur faisait aussi état d’économies d’énergie.
- L’électroménager. Vers 1990, des entreprises japonaises proposaient des lave-linge qui choisissaient le programme selon la turbidité de l’eau et la quantité de linge, et des caméras à mise au point et stabilisation d’image floues.
- Aujourd’hui, l’essentiel de la commande industrielle est assuré par des régulateurs PID et par la commande prédictive. Les règles floues s’utilisent plutôt « au-dessus d’eux » — elles changent les réglages selon le mode de fonctionnement — et partout où il est plus précieux de consigner rapidement une expérience que de construire un modèle précis.
9. Résumé
- Un régulateur flou comporte trois étapes : la fuzzification, l’inférence par les règles et la défuzzification.
- La défuzzification convertit l’ensemble flou de sortie en un nombre ; pour le ventilateur, le centre de gravité donne 65,9 %, la bissectrice 75,3 % et la moyenne des maxima 85,9 %.
- Sugeno a dans ses conclusions des nombres ou des fonctions linéaires, et sa sortie est une moyenne pondérée — 72,7 % pour la même entrée, sans intégrale.
- La surface de commande montre tout le régulateur d’un coup ; le centre de gravité n’atteint jamais les bords de la plage.
- Neuf règles sur la tige la maintiennent, mais le chariot s’en va ; un Sugeno du premier ordre avec la position et la vitesse du chariot maintient les deux pendant une minute entière.
Envie de mettre la main à la pâte ? Demandez à un agent d’IA d’écrire un thermostat flou pour une pièce simulée avec un chauffage qui réagit avec retard, et voyez combien de règles suffisent pour que la température n’oscille pas.
Vous voyez les choses autrement ? Écrivez à support@coden-app.com.