DU NOUVEAU DANS LES OUTILS POUR LA LOGIQUE FLOUE EMBARQUEE Les outils pour la logique floue s'allie au silicium pour des applications embarquées compactes L'alliance entre un outil à interface graphique riche et un microcontroleur 16 bits doté d'instructions spécialisées rend possible l'utilisation de la logique floue dans le développement d'applications embarquées. Le microcontroleur Motorola 68HC12 inclut des instructions pour l'implémentation de la logique floue. Le système de développement fuzzyTECH d'INFORM (Aix la Chapelle, Allemagne) génère du code assembleur 68HC12. L'alliance de ces deux sociétés vise des applications relativement complexes et non linéaires à l'aide d'un microcontroleur très intégré bas-coût. Le 68HC12 est un surensemble du Motorola 68HC11. Le code binaire du 68HC11 tourne sur le 68HC12 et réciproquement. 4 instructions ont été ajoutées au jeu d'instructions du 68HC11 :
Ces 4 instructions permettent une grande variété de traitements en logique floue. Une fonction d'appartenance trapézoïdale peut être définie par 4 valeurs codées en 16 bits. Les deux premières donnent le point de départ et la pente du premier côté du trapèze, chacun codé sur 16 bits. Les deux autres valeurs définissent la pente du second côté et le point final. La fonction MEM garde trace du nombre de fonctions d'appartenance associées à chacune des variables dans le jeu de règles floues. Elle compare la valeur de la variable à chaque fonction d'appartenance, calcule son degré d'appartenance et range ces résultats. L'évaluation des règles par le 68HC12 utilise l'approche de la logique floue appelée méthode MIN-MAX qui considère le dégré le plus faible dans les fonctions logiques "et" et le degré le plus élévé dans les fonctions logiques "ou". Dans le cas où des poids sont associés aux règles pour caractériser leurs importances respectives, l'instruction REVW multuplie le résultat de chaque règle par une fraction représentant l'importance relative de la règle, avant de le transmettre vers le calmcul des valeurs des sorties floues. Une fois que les sorties de l'évaluation des règles sont combinées en une sortie composite, l'instruction WAV évalue une valeur optimum pour chaque sortie. Bin qu'il existe plusieurs méthodes de défuzzification, le 68HC12 utilise la méthode "singleton". Pour chaque fonction d'appartenance, il considère le "singleton" ou hauteur du centre du trapèze considéré. La valeur de chaque sortie est calculée en moyennant les valeurs de chaque singleton pondéré par les hauteurs des trapèzes correspondants. Le logiciel qui réalise la fuzzyfication est le noyau d'inférence floue. La taille du noyau dépend du nombre de règles, du nombre de fonctions logiques (si, et, ou, then), le nombre d'entrées et de sorties et le nombre de fonctions d'appartenance. En utilisant les instructions floues du 68HC12, un exemple de contrôle flou mettant en oeuvre 2 entrées, une sortie avec 7 fonctions d'appartenance chacune, 17 règles, chacune avec 2 fonctions logiques est compilé en 54 octets. Son cycle de calcul est de 66 µs at 8 MHz. Le même exemple de contrôle réalisé avec un 68HC11 compilé en 262 octets et tourne en 75O µs at 4MHz. La différence se fait dans le code. La logique floue embarquée peut être réalisée avec un microprocesseur standard et un coprocesseur floue associé. mais la communication inter-processeurs implique un fort surcoût. D'autres approches peuvent utiliser un processeur 32 bits, adapté pour certaines applications mais pour les petites applications critiques sur le plan du coût. La combinaison Motorola/Inform vise des applications bas-coût, haute vitesse telles que l'ABS, l'asservissement des têtes des disques durs et le contrôle de l'allumage automobile. Ces applications doivent résoudre des problèmes complexes souvent non-linéaires et nécessitant des vitesses de calcul de boucle de contrôle élevées pour lesquels l'approche du modèle mathématique traditionnel serait trop lente. La logique floue sur un microcontrôleur rapide 16 bits peut souvent faire le travail à bas coût et à la bonne vitesse. Le système fuzzyTECH propose un environnement de développement totalement graphique pour la création et l'édition des règles floues, la saisie des fonctions d'appartenance, l'implémentation des méthodes d'inférence et la sélection des méthodes de défuzzyfication. Certaines étapes sont améliorées par des assistants (wizard). Par exemple, l'assistant Fuzzy Design propose à l'utilisateur une série de boîtes de dialogue pour construire le prototype. Par ailleurs, l'assistant Fuzzy variables facilite la définition complète des variables. L'éditeur de variable linguistique vous permet d'assigner un nom à chaque variable et de définir ses fonctions d'appartenance (voir la figure). Les fonctions d'appartenance possèdent également des noms. Par exemple, la variable "température" peut avoir des fonctions d'appartenance appelées "froide", "bonne", "confortable", "tiède" ou "chaude". Chaque fonction d'appartenance est tracée comme un graphique donnant le degré d'appartenance satisfaisant aux concepts de "froide", "bonne", "confortable", etc ... (voir encadré "La logique floue fait la décision"). Ce sont des degrés d'appartenance, de's degrés de "vérité" utilisés dans l'inférence floue. La logique floue réalise des opérations logiques sur des degrés d'appartenance plutôt que sur des "0" et des "1". Une fois que les variables sont définies, il faut les combiner en règles logiques de la forme : "SI la vitesse est élevée ET SI l'arbre est près ALORS freiner fort". Les valeurs actuelles de vitesse élevée et de proximité de l'arbre déterminent la force à appliquer à la pédale de frein. Le résultat de cette règle est combinée avec ceux des autres règles pour obtenir la valeur finale. Le système fuzzyTECH propose 3 éditeurs différents pour créer et modifier les règles. Un éditeur utilise un tableau qui donne une bonne vue d'ensemble pour les règles simples. pour des applications plus sophistiquées, il existe un éditeur de règles matriciel qui vous permet de travailler avec l'ensemble des règles en même temps. Les règles peuvent être aussi éditées en format texte utilisant le langage d'Inform "Fuzzy Technology Language" indépendant du matériel. Il existe aussi un choix de méthodes d'inférence incluant la méthode MIN-MAX décrite ci-dessus et MAX-PROD. Il y a aussi un jeu d'opérateurs pour l'aggrégation des règles incluant les opérateurs de compensation qui représentent plus justement les appréciations et décisions humaines. Les techniques de défuzzyfication incluent la méthode singleton plus d'autres telles que la méthode du centre de gravité et celle de la moyenne des maximums utilisées dans la reconnaissance de formes. FuzzyTECH propose aussi des outils interactifs d'optimisation pour la mise au point du système. Un graphique en 3D vous permet de voir le comportement des sorties en fonction des entrées. Un analyseur statistique visualise les taux d'activité des différentes règles pour mettre en évidence les règles redondantes ou inutiles. Le mode "mise au point" donne accès aux éditeurs de règles, aux éditeurs de fonctions d'appartenance et visualise dynamiquement l'état de tous les évènements pendant le fonctionnement du système. Vous pouvez aussi modifier une règle ou une fonction d'appartenance "au vol" et observer le résultat immédiatement. La version fuzzyTECH pour le 68HC12 dispose d'un mode "mise au point" qui utilise le port du chip dédié à la mise au point. Ceci évite les interférences avec le système complet qui serait due à l'utilisation d'une ligne série. Par exemple, vous pouvez modifier la forme d'une fonction d'appartenance associée à une variable et observer le changement de comportement. En même temps, vous pouvez voir le résultat dans une fenêtre de trace du fuzzyTECH. Pour 99$, Motorola fournit une carte d'évaluation (68HC912B32) livrée avec une version bridée du système Explorer de fuzzyTECH HC11/12. La version complète incluant des modules pour les systèmes neuro-flous, un optimiseur temps réel et un analyseur de données est disponible à partir de 2290$. Contacts: Motorola MCU information, P.O. Box 13026, Austin, TX 78711; (800) 765-7795, X985; http://www.mcu.mot-sps.com Inform Software 2001 Midwest Rd, OakBrook, IL 60521; USA http://www.fuzzytech.com TOM WILLIAMS La Logique Floue prend des décisions |
[(50 x 0,25) + (90 x 0,75)] / (0,25 + 0,75) = 80 |