▼
Scroll to page 2
of
38
Sommaire Page Manuel modes opératoires Logique floue ___________________________________________________________________________ 1 FRANÇAIS Chapitre Sommaire Page FRANÇAIS Chapitre ___________________________________________________________________________ 2 Sommaire Page 1 Introduction 1/1 1.1 Présentation du produit 1/1 1.2 Installation 1.2-1 La machine cible 1.2-2 Contenu du produit PL7 FUZ 1.2-3 La procédure d'installation 1/2 1/2 1/2 1/2 2 La fonction FUZ 2/1 2.1 Pré-requis 2/1 2.2 Paramètres de la fonction 2.2-1 Syntaxe d'appel de la fonction 2.2-2 Description et utilisation des paramètres 2/1 2/2 2/3 2.3 2.4 Modes de marche Aide à la saisie de paramètres 3 L'outil logique floue 2/4 2/5 3/1 3.1 Activation de l'outil logique floue 3.1-1 Sélection d'une fonction 3.1-2 Tests à l'ouverture de l'outil 3/1 3/1 3/2 3.2 Configuration de la logique floue 3.2-1 Onglet "Paramétrage" 3.2-2 Onglet "Fonctions d'appartenance" 3.2-3 Onglet "Règles" 3/3 3/3 3/4 3/7 3.3 Onglet "Réglages" 3/9 3.3-1 Simulation 3/9 3.3-2 Mode connecté 3/10 ___________________________________________________________________________ 3 FRANÇAIS Chapitre Sommaire FRANÇAIS Chapitre 3.4 Validation - Annulation Page 3/12 3.5 Archivage 3/12 3.6 Fonctionnement de l'outil dans l'environnement PL7 3/13 3.7 Impression 3/14 4 Performances 4/1 5 Annexes 5/1 5.1 5.2 Principe de fonctionnement de la fonction 5.1-1 Algorithme d'inférence floue 5.1-2 Utilisation des opérateurs de logique floue dans le calcul des inférences 5/1 5/1 Exemple 5/4 5/2 ___________________________________________________________________________ 4 Chapitre 1 Introduction 1 Introduction 1.1 Présentation du produit Le produit PL7 FUZ est une offre logicielle qui se décompose en trois éléments : • Une aide à la saisie des paramètres de la fonction accessible à partir de l’écran Bibliothèque de fonctions sous forme d'un écran spécifique intégré dans l'éditeur de PL7 Micro et PL7 Junior. • Un outil de conception et de mise au point de l'application logique floue s'intégrant dans les ateliers de programmation PL7 Micro et PL7 Junior, accessible depuis le menu Outils sous le nom Logique floue. • Une fonction logique floue de nom "FUZ" appartenant à la famille "Logique floue" qui s'intègre dans une application d'automate et qui permet d'exécuter les inférences floues au cœur de l'automate. ___________________________________________________________________________ 1/1 FRANÇAIS La fonction "Logique floue" est destinée à permettre l’intégration de bases de règles floues dans les automates programmables TSX 37 et TSX 57. Simple à comprendre et facile à mettre en œuvre, elle doit permettre d’intégrer un savoir-faire métier dans une application, par un utilisateur ayant acquis un minimum de connaissances sur la logique floue. De ce fait, les choix au niveau de la mise en œuvre de la logique floue ont été réduits au maximum. D'autre part, cette fonction peut être utilisée la plupart du temps en choisissant les configurations par défaut et sans connaissance spécifique des divers opérateurs utilisables en logique floue. 1.2 Installation 1.2-1 La machine cible Le produit PL7 FUZ fonctionne sur : • micro-ordinateur IBM PC ou compatible La configuration minimale doit être la suivante : • microprocesseur 486 DX 33 • 32 Mo de mémoire RAM • 20 Mo de disponible sur disque • moniteur VGA FRANÇAIS • un port série COM disponible (COM1 à COM4) pour connexion à l’automate • système d’exploitation Win95, NT • PL7 Micro, Junior ou Pro V3.0 minimum La configuration de la machine type est la suivante : • microprocesseur Pentium 133 Mhz • 48 Mo de mémoire RAM 1.2-2 Contenu du produit PL7 FUZ Le produit que vous venez de recevoir est constitué : • d'une disquette d'installation, • de la présente documentation. 1.2-3 La procédure d'installation Le produit PL7 FUZ est à installer sur un poste de développement, contenant déjà PL7 Micro, Junior ou Pro dans leur version 3.0 minimum. La disquette étant insérée dans le lecteur, les étapes à réaliser pour procéder à l'installation sont les suivantes : • Ouvrir l'explorateur Windows, sélectionner le lecteur (A) puis double cliquer sur setup.exe ou dans Exécuter du Menu Démarrer, taper a:\setup puis cliquer sur OK. ___________________________________________________________________________ 1/2 Introduction • Enregistrer votre nom et votre organisation • Choisir la langue d'installation FRANÇAIS • Pour utiliser le produit, il suffit de lancer PL7 et d'accéder ensuite aux différents composants nécessaires à la logique floue. ___________________________________________________________________________ 1/3 FRANÇAIS ___________________________________________________________________________ 1/4 Chapitre La fonction FUZ 22 2 La fonction FUZ Caractéristiques de la fonction : • 5 entrées, 4 sorties, • 25 règles maximum, • 3 prédicats et 2 conclusions par règle au maximum, • 20 fonctions d’appartenance maximum pour les entrées et 16 maximum pour les sorties, • sorties de type "singletons". Opérateurs : Pour chaque étape du raisonnement flou, la fonction utilise les opérateurs suivants : • opérateur de composition : MAX/MIN, • opérateur "ET" entre prédicats d’une règle : MIN, • opérateur d’agrégation : MAX, • opérateur de défuzzification : centre de gravité des singletons. Pour toute précision sur le fonctionnement de la logique floue intégrée dans cette fonction, se reporter au chapitre 5 "Annexes". 2.1 Pré-requis La fonction FUZ opère sur des données de l'application, qui lui sont passées sous forme de paramètres. Elle n'est pas instanciée. La fonction n’est exécutable que par appel dans le traitement d’une tâche. Elle n’a par définition aucun point d’entrée synchronisé sur tel ou tel mode de marche de l’automate. Les paramètres doivent tous être obligatoirement saisis, la notion de paramètre facultatif n’existe pas. 2.2 Paramètres de la fonction La saisie d’une fonction de logique floue s’effectue à partir des éditeurs LD, IL et ST dans une phrase langage. Attention, une fonction de logique floue ne peut pas être appelée dans un Data Function Block (DFB). Attention, une fonction de logique floue ne doit pas être conditionnée. ___________________________________________________________________________ 2/1 FRANÇAIS • opérateur d’implication : MIN, En effet, dans le cas où une fonction serait conditionnée, elle ne pourrait pas détecter une reprise à froid et serait donc incapable d’effectuer ses initialisations (et en particulier la vérification de la validité de la base de connaissance). En utilisant Ò Û , on appelle la bibliothèque de fonctions qui propose une aide à la saisie des paramètres de la fonction. Il suffit alors de sélectionner : • la famille de fonction : "Logique floue", • le nom de la fonction : FUZ, FRANÇAIS puis de mettre à jour la zone de saisie avec les paramètres requis. 2.2-1 Syntaxe d'appel de la fonction (Une aide à la saisie des paramètres est proposée au § 2.4). FUZ ( mot, mot, mot, mot, mot, mot cst[217], IN Entrée 1 IN Entrée 2 IN Entrée 3 IN Entrée 4 IN Entrée 5 IN Base de connaissance : 217 éléments mot, mot, mot, mot, bit, mot [240], OUT Sortie 1 OUT Sortie 2 OUT Sortie 3 OUT Sortie 4 OUT bit d'erreur IN/OUT Espace de travail : 240 éléments mot) IN/OUT Mot de Status/Commande Exemple d’appel : FUZ ( %MW0, %MW1, %MW2, %MW3, %MW4, %KW1000:217, %MW200, %MW201, %MW202, %MW203, %M100, %MW1000:240, %MW50) Rappel : Les paramètres passés à une fonction doivent tous être obligatoirement saisis. La notion de paramètre facultatif n’existe pas. ___________________________________________________________________________ 2/2 La fonction FUZ 2 Paramètre Type Description Ent1 WORD Entrée 1 Ent2 WORD Entrée 2 Ent3 WORD Entrée 3 Ent4 WORD Entrée 4 Ent5 WORD Entrée 5 Ctes AR_W Base de connaissance : 217 éléments Sor1 WORD Sortie 1 Sor2 WORD Sortie 2 Sor3 WORD Sortie 3 Sor4 WORD Sortie 4 Berr EBOOL Bit d’erreur Trav AR_W Espace de travail : 240 éléments StCm WORD Mot de status/commande Mot de Status/Commande : Bit n° Symbole Valeur initiale Accessibilité Signification 0 INIT 0 E 1 MAN_AUTO 1 L/E 2 START 0 E 1 déclenche une inférence à chaque cycle si on est en mode sur demande 3 CONT_ASK Param. L/E Sélection mode continu/sur demande 0 : mode continu 1 : mode sur demande 4 IN_FORC 0 L Positionné à 1, signale que les entrées sont forcées 5 DEBUG 0 L Positionné à 1, signale que la fonction est en mode Mise au point, ie l’outil commande directement la fonction et le code PL7 ne peut envoyer que la commande INIT (commande prioritaire sur le mode mise au point). 6 à 15 1 déclenche l’initialisation, remis à zéro automatiquement après initialisation Sélection mode manuel/automatique 0 : mode manuel 1 : mode automatique Réservé L : Accessibilité en lecture, E : Accessibilité en écriture (pris en compte par fonction) par programme ___________________________________________________________________________ 2/3 FRANÇAIS 2.2-2 Description et utilisation des paramètres Une écriture dans les bits réservés du mot de Status/Commande peut entraîner un dysfonctionnement de la fonction. Lors de l’initialisation de la fonction, le mot de status/commande est initialisé avec les valeurs stockées dans la base de connaissance. • La base de connaissance : FRANÇAIS La fonction FUZ doit manipuler une base de connaissance qui lui est propre. Or les fonctions ne possèdent pas de données rémanentes (conservées quel que soit l’état de l’automate). Pour sauvegarder la base de connaissance, on utilise des variables de type "constante" dont les valeurs sont sauvegardées simultanément dans l’application et dans l’automate (même à l’arrêt). Il s’agit ici du tableau Ctes. Cette zone de constantes, qui représente la base de connaissance, doit être protégée de toute modification intempestive. • L'espace de travail : La fonction FUZ doit, pour des besoins de calcul interne, opérer sur un espace de travail qui est représenté par le tableau Trav. Cette zone, comme la base de connaissance, doit elle aussi être protégée des modifications. 2.3 Modes de marche Ce paragraphe décrit le fonctionnement de la fonction dans les différents cas de démarrage de l’automate : • démarrage à froid : une initialisation de la fonction FUZ s'effectue. La base de connaissance est copiée dans l'espace de travail. Les commandes de réglage (forçage des entrées, ...) sont initialisées. • démarrage à chaud : la fonction de logique floue repart dans l’état courant. • première exécution après ajout d’une fonction par Modification en connecté : insertion en RUN ou STOP d’un appel supplémentaire à une fonction déjà présente dans l’application : dans ce cas une initialisation identique au cas de la reprise à froid est effectuée. ___________________________________________________________________________ 2/4 La fonction FUZ 2.4 2 Aide à la saisie de paramètres Afin d'aider à la saisie des paramètres, une boite de dialogue est accessible à partir de la bibliothèque (bouton Détail). Lorsque l’utilisateur a saisi des paramètres erronés avant d’appeler détail, une boite de dialogue signale les erreurs et les corrections apportées. Si aucun paramètre n’a été saisi, cette boite n’apparaît pas. FRANÇAIS Boite de dialogue "Erreur" Boite de dialogue d'aide à la saisie "Détail" Si une partie (ou la totalité) des mots ou constantes sont hors configuration, un message prévient l’utilisateur à la fin de la saisie. De plus la taille des tableaux est fixée (non modifiable). ___________________________________________________________________________ 2/5 Paramètres à saisir : 1) les deux tableaux de paramètres internes (constantes et mots), 2) les 5 variables d’entrées de type mot, 3) le bit Erreur, 4) les 4 variables de sorties de type mot, 5) le mot de status/commande. FRANÇAIS Il est possible de saisir les différentes variables selon leur représentation de type "repère" ou "symbole" et aussi de modifier leur type de représentation (dans le mode "Symbole", si aucun symbole n’est associé à un repère donné, c’est ce dernier qui est affiché). Il est obligatoire de saisir les 13 paramètres de la fonction. La validation globale est effectuée à la fin de la saisie (appui sur "OK"). ___________________________________________________________________________ 2/6 Chapitre L'outil logique floue 33 3 L'outil logique floue L’outil Logique floue est utilisé pour configurer les fonctions de logique floue de l’application. Il permet de créer, de mettre en forme la base de connaissance associée à cette fonction et de simuler son comportement. Enfin il permet le réglage de la fonction en connecté. 3.1 Activation de l'outil logique floue 3.1-1 Sélection d'une fonction Dans un premier temps l’outil recherche l’ensemble des fonctions de logique floue présentes dans l’application. Trois cas peuvent se présenter : • aucune fonction n’est trouvée, un message prévient l’utilisateur et l’outil ne s’ouvre pas, • une seule fonction se trouve dans l’application (le plus souvent), l’outil s’ouvre directement sur cette fonction, • il existe plusieurs fonctions de logique floue dans l’application, alors la boite de dialogue suivante s’affiche : Il est possible de visualiser la fonction sélectionnée en cliquant sur "Visualiser". L’éditeur contenant la phrase (ou le rung) dans laquelle est implémentée la fonction s’ouvre ou prend le focus (si il est déjà ouvert) et affiche la phrase (ou le rung) concerné. Pour configurer la fonction, sélectionner la fonction puis la charger en cliquant sur le bouton "Configurer" ou en double cliquant sur la ligne sélectionnée de la liste. ___________________________________________________________________________ 3/1 FRANÇAIS Pour ouvrir l'outil, il faut sélectionner la commande "Logique floue" du menu "Outils" (l'outil ne peut être instancié qu'une fois) : FRANÇAIS Si une fonction de logique floue est référencée plusieurs fois dans une même phrase (ou rung), son numéro dans la phrase est indiqué en fin de ligne dans la liste. Pour connaître la liste de ses paramètres, il suffit de sélectionner la fonction puis de cliquer sur "Paramètres". Un message contenant la liste des paramètres de la fonction sélectionnée s’affiche : 3.1-2 Tests à l'ouverture de l'outil Une vérification de la validité des paramètres et de la base de connaissance, si celleci existe, est effectuée lors de cette phase. Si cette base de connaissance est invalide, un message propose à l'utilisateur d'ouvrir l'outil sur une base vide. Si un des paramètres n'est pas valide, l'outil ne s'ouvre pas. ___________________________________________________________________________ 3/2 L'outil logique floue 3.2 3 Configuration de la logique floue Lors de son ouverture PL7 FUZ s’affiche selon une taille prédéfinie (taille des vues) ou plein écran si le ou les autres outils ouverts utilisent ce mode. Il respecte le fonctionnement classique de PL7. 3.2-1 Onglet "Paramétrage" FRANÇAIS Cet onglet se présente principalement comme une page d’information décrivant les paramètres de la fonction, tels qu'ils ont été saisis précédemment. Choix du Mode - Calcul des inférences Mode Sur demande : La fonction sera exécutée sur demande de l’utilisateur (dans ce cas, une seule inférence est lancée). C’est le mode par défaut. Mode Continu : Exécution de la fonction en continu. Si ce mode est choisi alors il faut saisir la période d’activation qui représente la période d’exécution de la fonction en dixièmes de seconde (cette valeur sera arrondie à un multiple de la période de la tâche dans laquelle la fonction est programmée). L’utilisation de cette période est intéressante pour les procédés sur lesquels il n’est pas nécessaire d’exécuter la fonction à chaque cycle. Une période égale à 0 exécute la fonction à chaque cycle automate. Valeur par défaut : 10 (une seconde). ___________________________________________________________________________ 3/3 3.2-2 Onglet "Fonctions d'appartenance" FRANÇAIS Cet onglet est utilisé pour définir les fonctions d'appartenance des entrées et des sorties et leurs termes linguistiques associés. Le nombre de fonctions d’appartenance est de 20 au maximum pour les variables d’entrées, de 16 au maximum pour les variables de sorties. La liste des variables linguistiques d’entrées et de sorties est affichée avec l’indication du type (I pour entrée, O pour sortie). Pour saisir la liste des fonctions d’appartenance associées à une variable, il suffit de sélectionner cette dernière dans la liste. Saisie des termes linguistiques Pour saisir un terme linguistique, l’utilisateur peut soit sélectionner un terme prédéfini affiché dans la liste, soit saisir un nouveau terme (16 caractères maximum) puis il suffit d'insérer (bouton "Ins."). Le bouton "Sup." permet de supprimer le terme sélectionné de la liste. Le bouton "Ren." permet de renommer un terme linguistique. Il est possible d’accéder plus rapidement à un terme prédéfini en saisissant ses premiers caractères, l’affichage de la liste étant alors trié selon ces caractères. ___________________________________________________________________________ 3/4 L'outil logique floue 3 Liste des termes linguistiques La liste des termes linguistiques se compose de termes prédéfinis (constructeur) et de termes utilisateurs. L'ensemble des termes (constructeurs et utilisateurs) est stocké dans l'application. La quantité maximale de termes contenus dans la liste est de 255 (constructeurs et utilisateurs). Bas Basse Bon Bonne Clair Claire Correct Correcte Elevé Elevée Faible Foncé Foncée Fort Forte Grand Grande G : Grand(e) Haut Haute Idéal Idéale Inférieur Inférieure Lent Lente Mauvais Mauvaise Moyen Moyenne M : Moyen(ne) Mini Minimal Minimale Maxi Maximal Maximale Médian Médiane Négatif Négative N : Négatif(ve) Négatif petit Négative petite Np : Négatif(ve) petit(e) Nm : Négatif(ve) moyen(ne) Négatif grand Négative grande Ng : Négatif(ve) grand(e) Non Normal Normale Nul Nulle Oui Petit Petite Positif Positive P : Positif(ve) Positif petit Positive petite Pp : Positif(ve) petit(e) Pm : Positif(ve) moyen(ne) Positif grand Positive grande Pg : Positif(ve) grand(e) Rapide Supérieur Supérieure Très clair Très claire Très bas Très basse Très bon Très bonne Très foncé Très foncée Très élevé Très élevée Très faible Très fort Très forte Très grand Très grande Très haut Très haute Très lent Très lente Très mauvais Très mauvaise Très négatif Très négative Très petit Très petite Très positif Très positive Très rapide Zéro Z : Zéro ___________________________________________________________________________ 3/5 FRANÇAIS Liste des termes linguistiques prédéfinis : Création des fonctions d’appartenance Après avoir saisi un terme linguistique, il est nécessaire de lui associer une fonction d'appartenance. Pour cela, il suffit de choisir le type de la fonction en cliquant sur l'un des boutons suivants : • fonctions d'appartenance d'entrée Demi-trapèze gauche FRANÇAIS xA xB Triangle symétrique ou asymétrique xA xB xC Trapèze symétrique ou asymétrique xA xB xC xD Demi-trapèze droit xA xB • fonctions d'appartenance de sortie Singleton sélectionné automatiquement xA ___________________________________________________________________________ 3/6 L'outil logique floue 3 Le caractère > apparaît devant un terme linguistique lorsqu'une fonction d'appartenance lui est associée (automatiquement pour une sortie). Il suffit ensuite de saisir les valeurs des points d'inflexion xA, xB, xC et/ou xD. L’échelle de l’affichage est gérée automatiquement suivant les fonctions d’appartenance définies. On visualise l’ensemble des fonctions d’appartenance associées à une variable linguistique (trait fin pour chaque fonction, en gras pour celle correspondant au terme linguistique sélectionné). 3.2-3 Onglet "Règles" Les règles floues utilisées sont basées sur le type de règles de "Mamdani". Il n'y a qu’une base de règles (les règles sont toutes activées en même temps). Chaque règle a au maximum 3 prédicats et 2 conclusions. La base de connaissance est constituée de 25 règles au maximum. ___________________________________________________________________________ 3/7 FRANÇAIS Valeur par défaut : Elle doit être saisie pour une sortie : il s’agit de la valeur par défaut affectée à cette sortie si aucune règle active ne la calcule (ce champ n’existe pas pour une entrée). Saisie La zone de saisie des règles se compose de listes déroulantes des variables et termes linguistiques. Pour écrire une règle, il suffit de saisir les prédicats et les conclusions en utilisant ces listes déroulantes. Une liste de termes linguistiques présente uniquement les termes définis pour la variable sélectionnée dans la liste des variables. On peut faire intervenir une négation sur les prédicats. Il suffit de sélectionner dans la liste déroulante, le terme linguistique précédé de "!". Il n’y a pas de négation pour les conclusions. FRANÇAIS Un fois la règle décrite, il suffit de l'ajouter (bouton "Ajouter") dans la liste des règles. Celle-ci sera insérée à la fin de la liste. Si le nombre maximal de règles est dépassé, un message prévient l’utilisateur. A chaque règle est associé un numéro. Les règles sont affichées dans l’ordre de leurs numéros. Les boutons de navigation permettent le changement de l’ordre des règles. Une règle doit posséder au moins un prédicat et une conclusion. Si ce n’est pas le cas, un message prévient l’utilisateur. Un clic sur le bouton "Initilialiser" efface tous les champs du groupe "Saisie d’une règle" permettant la saisie à partir d’une règle vierge. Modification - Suppression Pour modifier une règle, il suffit de la sélectionner dans la liste. Elle est alors affichée dans la zone "Saisie d’une règle". Une fois les modifications effectuées, appuyer sur "Modifier". Pour supprimer une règle, il faut la sélectionner dans la liste et la supprimer (bouton "Supprimer"). ___________________________________________________________________________ 3/8 L'outil logique floue 3.3 3 Onglet "Réglages" Cet onglet est utilisé de deux façons : • en mode local pour faire de la simulation, • en mode connecté pour effectuer la mise au point. FRANÇAIS 3.3-1 Simulation En mode local, cet onglet est utilisé pour faire la simulation du fonctionnement de la fonction. Cette simulation présente principalement les trois intérêts suivants : • pour tous les points de fonctionnement, vérification de l’activation des règles, • test du degré d’activation des règles pour amélioration/adaptation de la base de connaissance, • présence d’un automate non requise (validation de la base de connaissance en bureau d’étude par exemple). Pour activer la simulation il suffit de saisir les valeurs en entrées (zones de saisie des entrées forcées) puis de lancer l’inférence avec <Start>. Les sorties simulées s’affichent. Le degré de vérité des règles contenues dans la base de connaissance est visible dans le tableau. Toute règle activée a son degré de vérité affiché en rouge. La liste déroulante des règles située au-dessous du tableau reprend les mêmes informations complétées par la description des règles. ___________________________________________________________________________ 3/9 L’ensemble des autres zones de saisie et contrôles non utilisées en mode local sont grisées. Dans ce mode, le mot "Commandes simulation" apparaît au niveau du bloc de commandes. 3.3-2 Mode connecté FRANÇAIS Ce mode permet de faire de la mise au point : Forçage des entrées Le forçage des entrées permet d'effectuer une simulation du fonctionnement de la fonction et ainsi de tester, puis valider la base de connaissance associée en connecté. Cases 1,2,3,4,5 : Sélection des entrées forcées. Forçage des entrées : Force les entrées sélectionnées dans les cases 1, 2, 3, 4, 5. Dans ce cas, les vraies entrées ne sont pas prises en compte et seules les valeurs saisies dans les entrées forcées sont utilisées. Bit Erreur : Le bit erreur passe à 1 lorsque : - la base de connaissance est inexploitable (mots de travail altérés), - la taille des tableaux est incorrecte. Dans les autres cas le bit erreur est à 0. Quand le bit erreur est à 1, les paramètres de sortie ne sont plus raffraichis, ils restent dans l'état. Le programme applicatif doit donc tester ce bit pour imposer éventuellement une position de repli. ___________________________________________________________________________ 3/10 L'outil logique floue 3 Forçage des commandes : La sélection de cette case autorise les commandes directes, depuis cet écran (Inhibition du mot de status/commande). FRANÇAIS Dans ce mode, seule l’initialisation (bouton "Init") peut encore être commandée par le mot de status/commande (ie le programme peut réinitialiser la fonction même si l’utilisateur est en phase de mise au point). Le mot de status/commande informe le programme des actions de l’utilisateur. Pour que les commandes soient prises en compte, il est nécessaire que l’automate soit en RUN. Le fait de se déconnecter ou de quitter l’écran de mise au point (changement d’onglet ou fermeture de l’outil) libère le forçage des commandes tout en conservant le mode de fonctionnement courant. Automatique : Les sorties calculées sont affectées aux sorties réelles de la fonction. Manuel : Reprise en manuel. Les sorties manuelles sont affectées aux sorties réelles de la fonction. Fonctionnement sur demande - Fonctionnement continu - Période d’activation (cf. § 3.2-1) Start : Lancement d'une inférence. Le bouton est actif lorsque la fonction est en fonctionnement sur demande. Init : Réinitialisation de la fonction. La base de connaissance est recopiée dans l'espace de travail. Les commandes de réglages (Forçage des entrées, ....) sont réinitialisées. Règles : Cette zone permet de visualiser le degré de vérité pour les entrées instantanées de chacune des règles contenues dans la base de connaissance de la fonction. Il est exprimé en %. ___________________________________________________________________________ 3/11 3.4 Validation - Annulation FRANÇAIS Il est possible de Valider ou d’Annuler les modifications à n’importe quel moment de l’utilisation de la fonction. En effet l’ensemble de la base de connaissance est stocké en mémoire en permanence. Une configuration avec fonction FUZ modifiée se visualise par une * dans la barre de titre. La validation entraîne l'archivage de la base de connaissance liée à la fonction, puis la mise à jour du tableau de constantes et le transfert dans l'espace de travail (%MW) avec initialisation de la fonction si l'automate est en mode connecté. L'annulation restitue la dernière base de connaissance validée. La gestion du mode Annulation - Validation est donc globale (il n’est pas possible d’annuler ou de valider plusieurs modifications consécutives) et l’annulation reste possible tant que l’outil n’a pas été fermé. 3.5 Archivage A chaque validation, un archivage de la base de connaissance est réalisé automatiquement dans l'application, pour la fonction FUZ repérée par son adresse dans le programme. La restitution de la base de connaissance se fait par le menu "Services|Restituer". La restitution peut être demandée pour recharger la base de connaissance de la fonction précédemment archivée. La restitution est possible même après la fermeture de l'outil ou la fermeture de l'application. Cette commande permet en outre : • de récupérer la base de connaissance, suite à une modification des constantes (erreur de manipulation dans l'éditeur de variables). • le déplacement de la base de connaissance (après avoir déplacé la base de connaissance depuis un éditeur langage, il suffit d'appliquer la commande restituer), Exemple : Changement du paramètre "Base de connaissance" depuis un éditeur langage : • Ancienne base de connaissance : %KW0 : 217 • Nouvelle base de connaissance : %KW112 : 217 Depuis l'outil effectuer la commande "Restituer" du menu "Services". • copie de la base de connaissance sur une autre fonction : avec l'éditeur langage, saisir pour le tableau de constantes de la fonction cible, la même adresse que celle de la fonction source et valider. Demander ensuite le déplacement du tableau de constantes comme indiqué ci-dessus. ___________________________________________________________________________ 3/12 L'outil logique floue 3.6 3 Fonctionnement de l'outil dans l'environnement PL7 Evènement externe Comportement Fermeture PL7 Fermeture Application Affichage d'un message demandant à l'utilisateur de valider/annuler les modifications effectuées dans l'outil (si aucune modification, pas de message). Prise de focus de l’outil Le tableau de la base de connaissance de l'application a pu être modifié extérieurement à l'outil. Deux cas peuvent alors se présenter : - la base de connaissance de l'application est invalide : un message propose de la remplacer par la base courante de l'outil. Si la réponse est négative, l'outil est automatiquement fermé. - la base de connaissance de l'application est valide mais différente de celle de l'outil : un message propose de continuer le travail sur la base de l'application. Si des paramètres de la phrase d'appel de la fonction ont été modifiés, l'utilisateur en est averti par un message. Modification automatique de l’affichage du symbole Modification du symbole d'une variable linguistique dans l’éditeur de variables Local -> Connecté Si l’onglet "Réglages" est actif : passage en mode connecté. Dégrisage des contrôles. Connecté -> Local Si l’onglet "Réglages" est actif : passage en mode simulation. Grisage des contrôles devenant inactifs. Transfert d’une application Automate vers une console vierge - Perte des symboles associés aux variables linguistiques. - remplacement des termes linguistiques utilisateur par des termes linguistiques génériques (Undef_0, ...) Import d'application Remplacement des termes linguistiques utilisateur par des termes linguistiques génériques (Undef_0, ...) ___________________________________________________________________________ 3/13 FRANÇAIS PL7 est un atelier composé d’outils. Il est donc possible, lors de la configuration de la fonction, d’activer un autre outil ou de passer à un éditeur dans lequel est référencé la fonction configurée, puis de supprimer cette fonction ou d’en modifier les paramètres et valider. D’autre part, le menu principal commun à tous les outils reste accessible et il est donc possible de modifier le mode de marche de l’automate ou de passer de local en connecté par exemple . Le tableau ci-dessous recense l’ensemble des situations possibles et le comportement de l’outil dans chacune d’entre elles. 3.7 Impression Deux types d'impression sont possibles : • une impression locale depuis l'outil accessible par la commande Imprimer du menu Fichier, • une impression des caractéristiques de la fonction, en utilisant l'outil "Documentation" de PL7 qui gère l'impression du dossier de l'application. La description de l'application utilise, pour ce dossier, la proposition de normalisation IEC 1131-7 sous forme de code FCL (Fuzzy Control Language). Deux cas peuvent se présenter : FRANÇAIS • la fonction est paramétrée mais non configurée (avec l’outil logique floue). Dans ce cas, l’impression de la fonction se résume à la description de sa liste de paramètres, • la fonction a été paramétrée avec l’outil logique floue. L’ensemble des paramètres de la fonction ainsi que sa base de connaissance sont imprimés. L’impression se présente sous la forme : Paramètres Entrée n°1 Entrée n°2 Entrée n°3 Entrée n°4 Entrée n°5 Base de connaissance Sortie n°1 Sortie n°2 Sortie n°3 Sortie n°4 Bit erreur Espace de travail Mot de status/commande : %MW1501 : %MW1502 : %MW1503 : %MW1504 : %MW1505 : %KW1500:217 : %MW1511 : %MW1512 : %MW1513 : %MW1514 : %M1500 : %MW1600:240 : %MW1520 Base de connaissance VAR_INPUT %MW1501 : INT; %MW1502 : INT; %MW1503 : INT; %MW1504 : INT; %MW1505 : INT; END_VAR VAR_OUTPUT %MW1511 : INT; %MW1512 : INT; %MW1513 : INT; %MW1514 : INT; END_VAR ___________________________________________________________________________ 3/14 3 FUZZIFY %MW1501; TERM Elevé := (0,1) (1000,0); END_FUZZIFY FUZZIFY %MW1503; TERM Elevé := (0,1) (1000,0); END_FUZZIFY FUZZIFY %MW1501; TERM Elevé := (0,1) (100,0); END_FUZZIFY FUZZIFY %MW1505; TERM Lente := (-10,1) (0,0); TERM Mauvais := (-10,1) (0,1) (0,0); TERM Négatif Grand := (0,0) (0,1) (10,0); TERM N := (0,0) (10,1); END_FUZZIFY DEFUZZIFY %MW1511; METHOD : COGS; TERM Médiane := 0; TERM Correcte := 600; DEFAULT := 0; END_DEFUZZIFY DEFUZZIFY %MW1512; METHOD : COGS; TERM Lente := -50; TERM Mauvais := -10; TERM Supérieur := 0; TERM Négatif Grand := 10; DEFAULT := 0; END_DEFUZZIFY RULEBLOCK No 1 AND : MIN; ACCU : MAX; RULE 1 : IF %MW1501 IS Elevé THEN %MW1511 IS Médiane RULE 2 : IF %MW1501 IS NOT Elevé AND %MW1505 IS NOT N THEN %MW1511 IS Correcte RULE 3 : IF %MW1505 IS Lente THEN %MW1512 IS N RULE 4 : IF %MW1505 IS Mauvais THEN %MW1512 IS Négatif Grand RULE 5 : IF %MW1505 IS Négatif Grand THEN %MW1512 IS Mauvais RULE 6 : IF %MW1505 IS N THEN %MW1512 IS Lente, %MW1511 IS Médiane END_RULEBLOCK ___________________________________________________________________________ 3/15 FRANÇAIS L'outil logique floue FRANÇAIS ___________________________________________________________________________ 3/16 Chapitre 44 Performances 4 Performances Occupation mémoire Espace programme 1608 mots Temps d’exécution (par cycle) Les temps d’exécution sont très variables en fonction de la base de connaissance utilisée. Les chiffres donnés dans les tableaux ci-dessous ont été mesurés dans les conditions suivantes : • 1 entrée, 2 sorties, • 3 règles, • 9 fonctions d’appartenance. TSX PREMIUM 37.10 37.22 57.10 57.20 7 ms 5,5 ms 7 ms 4,8 ms • 4 entrées, 3 sorties, • 13 règles, • 19 fonctions d’appartenance. TSX MICRO TSX PREMIUM 37.10 37.22 57.10 57.20 9,6 ms 7 ms 9,2 ms 6,6 ms • 5 entrées, 4 sorties, • 25 règles, • 36 fonctions d’appartenance. TSX MICRO TSX PREMIUM 37.10 37.22 57.10 57.20 17,5 ms 13,5 ms 13,5 ms 9,6 ms ___________________________________________________________________________ 4/1 FRANÇAIS TSX MICRO FRANÇAIS ___________________________________________________________________________ 4/2 Chapitre Annexes 55 5 Annexes 5.1 Principe de fonctionnement de la fonction 5.1-1 Algorithme d'inférence floue La fonction FUZ assure le calcul des inférences floues en réalisant les étapes suivantes: • lecture des valeurs numériques des variables d’entrée, • évaluation de chaque fonction d’appartenance (Fuzzification), • évaluation de chaque règle, • calcul des fonctions d’appartenance de sortie résultantes, Règles floues Les règles floues utilisées sont basées sur le type de règles "de Mamdani". Il y a une seule base de règles, c’est-à-dire que les règles sont toutes activées en même temps. Les règles acceptent au maximum trois prédicats (conditions) et deux conclusions. Fonctions d’appartenance Les fonctions d’appartenance peuvent être définies relativement à des entrées et des sorties de la fonction. Elles sont toutes "normalisées", c’est-à-dire que les degrés d’appartenance minimal et maximal atteints par la fontion d’appartenance sont 0 et 100(%). La normalisation n’est pas faite entre 0 et 1 du fait que les calculs sont réalisés en nombres entiers. On dispose des possibilités suivantes : Pour les fonctions d’appartenance des entrées : • triangulaire symétrique • triangulaire asymétrique • demi-trapèze droit • demi-trapèze gauche • trapèze symétrique • trapèze asymétrique Pour les fonctions d’appartenance des sorties : • singleton (réduite à un point). Les fonctions d’appartenance d’entrées sont représentées dans la fonction sous forme des abscisses xA, xB, xC, xD de quatre points caractéristiques successifs. Les fonctions d’appartenance des sorties sont représentées par la seule valeur du singleton correspondant, xS. ___________________________________________________________________________ 5/1 FRANÇAIS • calcul des valeurs numériques des variables de sortie (Défuzzification). B 100% C A 100% D xS Entr ée Sortie FRANÇAIS Méthode d’inférence La fonction FUZ utilise des règles flous de Mamdani avec les opérateurs suivants : (1) opérateur "ET" : MIN (2) opérateur d’implication : MIN (3 opérateur d’agrégation ou "OU": MAX Défuzzification La fonction FUZ utilise la méthode de défuzzification par calcul du centre de gravité des singletons. 5.1-2 Utilisation des opérateurs de logique floue dans le calcul des inférences Fuzzification Correspondance directe entre valeur numérique d’entrée et degré d’appartenance : M oy enne D egr é d’appar tenanc e Valeur de l’entr ée ___________________________________________________________________________ 5/2 Annexes 5 Règles • Opérateur ET : MIN La valeur retenue comme degré d’activation de la règle est le minimum des degrés d’appartenance des prédicats. Exemple : SI Entrée1 Moyenne ET Entrée2 Petite ALORS ... M oyenne Entrée1 Valeur de l’entr ée1 Entr ée2 Valeur retenue Valeur de l’entrée2 • Opérateur d’implication : MIN La fonction d’appartenance de sortie est “écrêtée” à la valeur du degré d’activation de la règle. Exemple : ... ALORS Sortie Faible 100% Faible D egré d’activ ation Sortie • Opérateur d’agrégation : MAX Si plusieurs règles utilisent une même conclusion, la fonction d’appartenance de sortie est finalement “écrêtée” à la valeur du degré d’activation de règle le plus élevé. D egré d’activation règle 1 100% règle 2 Sortie ___________________________________________________________________________ 5/3 FRANÇAIS Peti te Défuzzification La valeur numérique calculée de la sortie correspond au centre de gravité de l’ensemble des singletons de la sortie. 100% Faible Moyenne Gr ande y y 1 y x1 3 2 x x2 3 Sortie FRANÇAIS Valeur calculée Valeur calculée = 5.2 Σ ( xi . y i ) Σy i Exemple Fonctions d’appartenance % % Moyen Petit Moy en % Gr and 100 100 100 10 30 40 E n tr ée X 60 X 60 80 90 Y Petit 100 E n t rée Y Moy en G rand 500 900 Z S o r tie Z Règles Règle 1 : Règle 2 : Si (X est Petit) Alors (Z est Grand) Si (X est Moyen) Et (Y est Grand) Alors (Z est Petit) ___________________________________________________________________________ 5/4 Annexes 5 Calcul de l’inférence Valeurs prises par les entrées : X=15, Y=85 % % Petit 100 G rand 100 75 R è g le 1 10 30 40 60 X 100 % % % G rand M oyen 100 100 R è g le 2 500 900 Z 500 900 Z Petit 100 50 10 30 15 40 60 X 60 80 90 110 Y 100 85 % D é f u z z if ic a t io n Petit G rand 75 25 100 900 Z 700 ___________________________________________________________________________ 5/5 FRANÇAIS 25 FRANÇAIS ___________________________________________________________________________ 5/6