▼
Scroll to page 2
of
50
OFB-FUZZY Sommaire ___________________________________________________________________________ Chapitre Page 1 Mise en oeuvre 1/1 1.1 Présentation du logiciel 1.1-1 Fonctionnalités offertes par le logiciel OFB-FUZZY 1/1 1/1 1.2 Installation 1.2-1 Configuration nécessaire pour recevoir OFB-FUZZY 1.2-2 Vérification du matériel 1.2-3 Mise en oeuvre logicielle 1/1 1/1 1/2 1/2 2 Fonctionnement et mise en oeuvre logicielle 2/1 2.1 Présentation de l'OFB 2/1 2.2 Principe de fonctionnement de l'OFB 2.2-1 Règles floues 2.2-2 Fonctions d'appartenance 2.2-3 Méthode d'inférence 2.2-4 Fuzzification 2.2-5 Défuzzification 2/1 2/2 2/2 2/3 2/3 2/3 2.3 Description des paramètres de l'OFB 2/4 2.4 Informations de diagnostic 2/9 2.5 Le mot COMMAND. 2/10 2.6 Modes de marches de l'OFB XFUZ 2.6-1 Comportement sur reprise à froid 2.6-2 Comportement sur reprise à chaud 2.6-3 Comportement sur front montant de INIT 2.6-4 Comportement sur fron montant de REFRESH 2.6-5 Comportement nominal de l'OFB 2/11 2/11 2/11 2/11 2/11 2/12 2.7 Forçage des paramètres d'entrée 2/13 ___________________________________________________________________________ 1 OFB-FUZZY Sommaire ___________________________________________________________________________ Chapitre Page 2.8 Contrôle de la base de connaissance 2/13 2.9 Performances de l'OFB XFUZ 2/14 3 Mise en oeuvre de l'OFB XFUZ 3/1 3.1 Configuration de l'OFB 3/1 3.2 Programmation de la base de connaissance 3.2-1 Codage des chaînes ASCII 3.2-2 Entrées-Sorties-Variables intermédiaires (ESV) 3.2-3 Fonctions d'appartenance (FA) 3.2-4 Règles (RG) 3/2 3/2 3/2 3/3 3/4 3.3 Exemple de création de base de connaissance 3.3-1 Données 3.3-2 Réalisation du codage 3.3-3 Tableau de programmation complète 3.4 Description complète des tableaux de constantes ESV, FA et RG 3/14 3.5 Aide mémoire 3/5 3/5 3/7 3/10 3/27 ___________________________________________________________________________ 2 Mise en œuvre 11 Chapitre 1 Mise en œuvre 1.1 Présentation du logiciel 1.1-1 Fonctionnalités offertes par le logiciel OFB-FUZZY Le logiciel OFB-FUZZY référencé TXT L FB FUZZY V1 est destiné à permettre l’intégration de bases de règles floues dans les automates programmables TSX et PMX. Il propose pour cela un bloc fonction (XFUZ) réalisant le calcul des inférences floues. Les règles floues et les fonctions d'appartenance sont intégrées dans l’application par saisie des constantes internes de cet OFB. 1.2 Installation 1.2-1 Configuration nécessaire pour recevoir OFB-FUZZY Pour mettre en œuvre OFB-FUZZY, il est nécessaire de disposer d'un terminal FTX 417 FTX 507 ou d'un micro-ordinateur compatible PC équipé : • du système d'exploitation OS/2, version 1.3, 2.1 ou 3.0 (WARP), • de l'atelier logiciel X-TEL, référencé TXT L BASE V52 (ou > V52), • du logiciel PL7-3 référencé TXT L PL7 3 V52, TXT L PL7 3 S V52 ou TXT L PL7 3T V52 (ou > V52). Cela implique de disposer au minimum de 4 Mo de mémoire RAM (6 Mo conseillé) et de 40 Mo de disque dur (120 Mo conseillé). Important Telemecanique ne peut garantir la bonne exécution de ces logiciels sur la totalité des micro-ordinateurs ou compatibles (répondant aux caractéristiques précitées) disponible sur le marché. ___________________________________________________________________________ 1/1 1.2-2 Vérification du matériel L'ensemble logiciel TXT L FB FUZZY V1 comprend : • une disquette au format 3"1/2, référencée TXT LF FB FUZZY V1, • le contrat de licence, • la présente documentation référencée TXT DM FB FUZZY V1. Afin de pouvoir utiliser le logiciel OFB-FUZZY, il est nécessaire de disposer du matériel suivant : • un terminal FTX 417 20/FTX 507 ou un micro-ordinateur compatible PC (voir configuration nécessaire au chapitre 1.2-1), • un câble de liaison terminal/automate programmable, dans le cas d'un terminal FTX 417/507, • dans le cas d'un micro-ordinateur compatible PC, un ensemble de liaison terminal/ automate programmable (référencé TSX TAC03) composé de : - un convertisseur RS 232C/boucle de courant, - un câble de liaison convertisseur/micro-ordinateur équipé d'un connecteur 9 points, - un câble de liaison convertisseur/micro-ordinateur équipé d'un connecteur 25 points, - un câble de liaison convertisseur/automate, - un support de clé logiciel TSX SCC 02. 1.2-3 Mise en œuvre logicielle Opérations préliminaires Avant d'installer le logiciel sur le disque dur, il est conseillé de : • lire le certificat de garantie concernant les restrictions de copie et d'installation du logiciel, • faire une duplication des disquettes nécessaires à l'installation afin de les préserver contre toute détérioration accidentelle et de ne travailler qu'avec la copie. Important Les disquettes du logiciel OFB-FUZZY sont livrées en position verrouillée en écriture. Ne pas modifier la position des verrous. ___________________________________________________________________________ 1/2 Mise en œuvre 1 Procédure d'installation Les opérations suivantes doivent précéder l'installation du logiciel OFB-FUZZY : • vérifier que l'atelier logiciel X-TEL ainsi que le logiciel PL7-3 (version 5.2 ou plus) sont déjà installés : - si c'est le cas, procéder à l'installation du logiciel OFB-FUZZY selon la procédure décrite ci-après, - dans le cas contraire, installer d'abord l'atelier logiciel X-TEL (voir manuel de base concerné), puis le logiciel PL7-3 V52 (se reporter au document Langages PL7-3 Modes opératoires V52). • fermer toutes les sessions en cours. Installation du logiciel OFB-FUZZY : • ouvrir une session OS/2 plein écran, • insérer la disquette TXT LF FB FUZZY V1 dans le lecteur, • saisir l'identificateur du lecteur (a: ou b:), puis valider par <Entrée>, • à partir du nouveau prompt (par exemple [A:\] ou [B:\], saisir la commande Install puis valider par <Entrée>, • suivre la procédure visualisée à l'écran, • lorsque l'installation est terminée et si celle-ci est la dernière, contrôler la configuration. Valider par <Entrée>, retirer la disquette du lecteur et retourner à X-TEL par la commande <Ctrl><Echap>. ___________________________________________________________________________ 1/3 ___________________________________________________________________________ 1/4 Bloc fonction XFUZ 22 Chapitre 2 Bloc fonction XFUZ 2.1 Présentation de l’OFB Le bloc fonction XFUZ est destiné à permettre l’intégration de bases de règles floues dans les automates programmables TSX et PMX. XFUZ a été conçu dans un souci de simplicité d’utilisation. Il permet cependant des fonctions évoluées telles que les inférences enchaînées. Il intègre un mécanisme d’inférences rapide (grâce à la programmation en entiers) et la possibilité d’utiliser des fonctions d’appartenance de sortie "singleton". XFUZ doit permettre d’intégrer un savoir-faire métier de réglage ou de régulation dans une application, et ce par une personne ayant une formation minimale. Dans ce but les choix au niveau de la logique floue ont été réduits au minimum. D’autre part il peut être utilisé la plupart du temps en utilisant les configurations par défaut et sans connaissances spécifiques des divers opérateurs utilisables en logique floue. XFUZ peut être utilisé de façon cyclique en régulation ou sur demande pour les besoins de réglage ou d'aide à la décision. 2.2 Principe de fonctionnement de l’OFB L’OFB XFUZ assure le calcul des inférences floues en réalisant les étapes suivantes : • lecture des valeurs numériques des paramètres d’entrée, • évaluation de chaque fonction d’appartenance (Fuzzification), • évaluation de chaque règle, • obtention des fonctions d’appartenance de sortie résultantes, • obtention des valeurs numériques des paramètres de sortie (Défuzzification). ___________________________________________________________________________ 2/1 2.2-1 Règles floues Les règles floues utilisées sont basées sur le type de règles "de Mamdani", par opposition aux règles "de Sugeno" (à sorties non floues), qui ne sont pas implémentées ici. Il y a une seule base de règles, c’est-à-dire que les règles sont toutes activées en même temps (et non pas organisées en plusieurs groupes de règles). Si on désire utiliser plusieurs groupes de règles floues, il faut alors utiliser plusieurs instances de l’OFB XFUZ. Les règles ont au maximum quatre prédicats et deux conclusions. Il est possible d’effectuer des raisonnements en deux étapes, en utilisant en prédicat de règles des variables intermédiaires ou des sorties calculées par d’autres règles. Le traitement est alors fait en deux temps : • 1ère inférence : traitement de toutes les règles n’ayant que des entrées en prédicat, • 2ème inférence : traitement de toutes les règles ayant au moins une variable intermédiaire ou une sortie en prédicat. Dans ce cas, le résultat des règles de 1ère inférence est directement utilisé comme entrée floue pour les règles de 2ème inférence, sans défuzzification intermédiaire. Ce n’est qu’à l’issue de la 2ème inférence que les sorties sont défuzzifiées pour produire les valeurs numériques des paramètres de sortie. Note : L’utilisation d’une 2ème inférence est incompatible avec les fonctions d’appartenance de sortie "singleton". 2.2-2 Fonctions d’appartenance Les fonctions d’appartenance peuvent être définies relativement à des entrées de l’OFB, des sorties, ou des variables intermédiaires. Elles sont toutes "normalisées", c’est-à-dire que les valeurs de vérité minimale et maximale atteintes par la fonction d’appartenance sont 0 et 1. On dispose des possibilités suivantes : Booléenne : • réduite à un point (possible uniquement pour les sorties). Floues : • triangulaire symétrique, • triangulaire asymétrique, • demi-trapèze droit, • demi-trapèze gauche, • trapèze symétrique, • trapèze asymétrique. ___________________________________________________________________________ 2/2 Bloc fonction XFUZ 2 Elles seront toutes représentées dans l’OFB sous forme des abscisses xA, xB, xC, xD des quatre points d’inflexion successifs, ce qui peut être représenté par le schéma suivant, où les points consécutifs A, B, C et D peuvent éventuellement être confondus : y B 1 C 0 x min A D max 2.2-3 Méthode d’inférence Les diverses étapes du raisonnement flou sont les suivantes (sans la fuzzification et la défuzzification, et pour un seul niveau de règles) : • (1) calcul du degré de vérité associé à chaque fonction d’appartenance d’entrée (compatibilité entre les ensembles flous d’entrée, éventuellement réduits à un point, et les fonctions d’appartenance d’entrée), • (2) calcul du degré d’activation de chaque règle (opérateur "ET" entre les prédicats d’une même règle), • (3) calcul des fonctions d’appartenance de sortie de chaque règle (parfois appelé également "opérateur d’implication"), • (4) agrégation de ces fonctions d’appartenance pour obtenir les ensembles flous de sortie (opérateur "OU" entre les règles). L’ OFB XFUZ propose pour chaque étape les opérateurs suivants : • (1) opérateur de conjugaison (OP_CONJ) : MAX/MIN (pas de choix), • (2) opérateur "ET" (OP_ET) : MIN ou MULTIPLICATION, • (3) opérateur d’implication (OP_IMPL) : MIN ou MULTIPLICATION, • (4) opérateur d’agrégation ou "OU" (OP_AGREG) : MAXIMUM (pas de choix). 2.2-4 Fuzzification L’OFB utilise (virtuellement) des "singletons flous" comme ensemble flou résultant d’une valeur précise d’entrée. 2.2-5 Défuzzification Le "centre de gravité" ou la "moyenne des maxima" sont proposés par l’ OFB XFUZ (OP_DEFUZ). ___________________________________________________________________________ 2/3 2.3 Description des paramètres de l’OFB. Dans les tableaux qui suivent, la colonne "Accès" indique comment les variables peuvent être lues ou écrites : • (1) Lecture par programme et en mode données, • (2) Lecture par programme et en mode données, Ecriture en mode données, • (3) Lecture par programme et en mode données, Ecriture par programme et en mode données. OFB XFUZ Entrées INP1 INP2 INP3 INP4 INP5 INP6 INP7 INP8 mot mot mot mot mot mot mot mot ERROR STATUS OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 bit mot mot mot mot mot mot mot Données internes INIT MAN_AUTO CONT_ASK START REFRESH INHIB O1_CALC O2_CALC O3_CALC O4_CALC O5_CALC O6_CALC O1_MAN O2_MAN O3_MAN O4_MAN O5_MAN O6_MAN bit bit bit bit bit bit mot mot mot mot mot mot mot mot mot mot mot mot I1_SIM I2_SIM I3_SIM I4_SIM I5_SIM I6_SIM I7_SIM I8_SIM O1_DEF O2_DEF O3_DEF O4_DEF O5_DEF O6_DEF T_OFB MONITOR COMMAND DEGRE mot mot mot mot mot mot mot mot mot mot mot mot mot mot mot mot mot tableau d'octets Constantes Internes OP_CONJ OP_ET OP_IMPL OP_AGREG OP_DEFUZ OUT_PT CONTASK$ T_OFB$ mot mot mot mot mot bit bit mot O1_DEF$ O2_DEF$ O3_DEF$ O4_DEF$ O5_DEF$ O6_DEF$ ESV FA RG mot mot mot mot mot mot tableau de mots tableau de mots tableau de mots Sorties ___________________________________________________________________________ 2/4 Bloc fonction XFUZ 2 Paramètres d’entrée Paramètre Type Accès Description INP1 mot (1) entrée No 1 INP2 mot (1) entrée No 2 INP3 mot (1) entrée No 3 INP4 mot (1) entrée No 4 INP5 mot (1) entrée No 5 INP6 mot (1) entrée No 6 INP7 mot (1) entrée No 7 INP8 mot (1) entrée No 8 Description Paramètres de sortie Paramètre Type Accès ERROR bit (1) Bit d’erreur de l’OFB XFUZ (regroupant les erreurs contenues dans le mot STATUS). STATUS mot (1) Mot de statut contenant des erreurs, des informations et des alarmes. Il permet entre autres de connaître l’origine des erreurs regroupées sur le bit ERROR. OUT1 mot (1) sortie No 1 OUT2 mot (1) sortie No 2 OUT3 mot (1) sortie No 3 OUT4 mot (1) sortie No 4 OUT5 mot (1) sortie No 5 OUT6 mot (1) sortie No 6 ___________________________________________________________________________ 2/5 Données internes Paramètre Type Accès Description INIT bit (3) Un front montant de ce bit lance la réinitialisation de l’OFB. Par défaut INIT=0. MAN_AUTO bit (3) MAN_AUTO définit si on se trouve dans le mode "MANUEL" ou le mode "AUTOMATIQUE". Le mode par défaut est le mode "MANUEL". MAN_AUTO=0 : mode "MANUEL" : Le résultat des inférences calculées n’est pas affecté aux sorties. Les sorties OUT1 à OUT6 sont égales aux sorties manuelles O1_MAN à O6_MAN. MAN_AUTO=1 : mode "AUTOMATIQUE" : Le résultat des inférences est affecté aux sorties. Rq : Le forçage des entrées, qui est utilisé pour déconnecter complètement l’OFB de l’automate et le tester, est indépendant de MAN_AUTO, START et CONT_ASK. Il est possible quelles que soient les valeurs de ces trois bits. CONT_ASK bit (3) Utilisé pour choisir le mode de fonctionnement "CONTINU" ou le mode "SUR DEMANDE". Ce bit est initialisé à la valeur de la constante CONTASK$. Les fonctionnements correspondants sont les suivants : CONT_ASK=0 : mode "CONTINU" : inférences effectuées périodiquement, à la période T_OFB (si START=1). CONT_ASK=1 : mode "SUR DEMANDE" : inférences effectuées sur front montant du bit START. START bit (3) Un front montant de ce bit lance l’exécution des inférences. Par défaut START=0. si CONT_ASK=0, le calcul des inférences est exécuté avec la période T_OFB tant que START=1. si CONT_ASK=1, le calcul des inférences est exécuté sur front montant de START. REFRESH bit (3) Sur front montant de ce bit, on recopie les constantes internes définissant la base de connaissance sur les variables internes privées. Par défaut REFRESH=0 INHIB bit (3) Bit inhibant l’affectation à 1 du bit d’erreur ERROR (quand il est à 1). Par défaut INHIB=0. O1_CALC mot (1) Valeur calculée de la sortie N° 1, mise à jour indépendamment de MAN_AUTO. O2_CALC mot (1) Valeur calculée de la sortie No 2, mise à jour indépendamment de MAN_AUTO. O3_CALC mot (1) Valeur calculée de la sortie No 3, mise à jour indépendamment de MAN_AUTO. O4_CALC mot (1) Valeur calculée de la sortie No 4, mise à jour indépendamment de MAN_AUTO. O5_CALC mot (1) Valeur calculée de la sortie No 5, mise à jour indépendamment de MAN_AUTO. O6_CALC mot (1) Valeur calculée de la sortie No 6, mise à jour indépendamment de MAN_AUTO. ___________________________________________________________________________ 2/6 Bloc fonction XFUZ 2 O1_MAN mot (3) Sortie manuelle No 1, initialisée à O1_DEF$. O2_MAN mot (3) Sortie manuelle No 2, initialisée à O2_DEF$. O3_MAN mot (3) Sortie manuelle No 3, initialisée à O3_DEF$. O4_MAN mot (3) Sortie manuelle No 4, initialisée à O4_DEF$. O5_MAN mot (3) Sortie manuelle No 5, initialisée à O5_DEF$. O6_MAN mot (3) Sortie manuelle No 6, initialisée à O6_DEF$. I1_SIM mot (3) Valeur forcée de l’entrée No 1, utilisée au lieu de INP1 si COMMAND,0 = 1. I2_SIM mot (3) Valeur forcée de l’entrée No 2, utilisée au lieu de INP2 si COMMAND,1 = 1. I3_SIM mot (3) Valeur forcée de l’entrée No 3, utilisée au lieu de INP3 si COMMAND,2 = 1. I4_SIM mot (3) Valeur forcée de l’entrée No 4, utilisée au lieu de INP4 si COMMAND,3 = 1. I5_SIM mot (3) Valeur forcée de l’entrée No 5, utilisée au lieu de INP5 si COMMAND,4 = 1. I6_SIM mot (3) Valeur forcée de l’entrée No 6, utilisée au lieu de INP6 si COMMAND,5 = 1. I7_SIM mot (3) Valeur forcée de l’entrée No 7, utilisée au lieu de INP7 si COMMAND,6 = 1. I8_SIM mot (3) Valeur forcée de l’entrée No 8, utilisée au lieu de INP8 si COMMAND,7 = 1. O1_DEF mot (3) Valeur par défaut de la sortie No 1, affectée à la sortie OUT1 si aucune règle active ne calcule cette sortie, initialisée à O1_DEF$. O2_DEF mot (3) Valeur par défaut de la sortie No 2, affectée à la sortie OUT2 si aucune règle active ne calcule cette sortie, initialisée à O2_DEF$ O3_DEF mot (3) Valeur par défaut de la sortie No 3, affectée à la sortie OUT3 si aucune règle active ne calcule cette sortie, initialisée à O3_DEF$ O4_DEF mot (3) Valeur par défaut de la sortie No 4, affectée à la sortie OUT4 si aucune règle active ne calcule cette sortie, initialisée à O4_DEF$. O5_DEF mot (3) Valeur par défaut de la sortie No 5, affectée à la sortie OUT5 si aucune règle active ne calcule cette sortie, initialisée à O5_DEF$. O6_DEF mot (3) Valeur par défaut de la sortie No 6, affectée à la sortie OUT6 si aucune règle active ne calcule cette sortie, initialisée à O6_DEF$. T_OFB mot (3) Période de l’OFB en centièmes de secondes (arrondie à un multiple de la période de la tâche dans laquelle l’OFB est programmé), initialisée à T_OFB$. MONITOR mot (3) Réservé. COMMAND mot (3) Mot de commande, par défaut COMMAND = 0.. DEGRE[64] tableau (3) d’octets Degrés d’activation des règles, chacun codé sur un octet. ___________________________________________________________________________ 2/7 Constantes internes de structure Par défaut, on a la méthode dite "de Mamdani". Paramètre Type Accès Description OP_CONJ mot (2) Opérateur de conjugaison : 0 : MIN/MAX OP_ET mot (2) Opérateur ET entre prédicats d’une règle 0 : Minimum (par défaut) 1 : Multiplication OP_IMPL mot (2) Opérateur d’implication 0 : Minimum (par défaut) 1 : Multiplication OP_AGREG mot (2) Opérateur d’agrégation entre conclusions 0 : Maximum OP_DEFUZ mot (2) Opérateur de défuzzification 0 : Centre de gravité (par défaut) 1 : Moyenne des maxima OUT_PT bit (2) Choix du mode de calcul des inférences 0 : mode normal (par défaut) 1 : fonctions d’appartenance de sortie réduites à un point Constantes internes d’initialisation Paramètre Type Accès Description CONTASK$ bit (2) Valeur initiale du mode de fonctionnement continu/sur demande. Par défaut CONTASK$ = 1. T_OFB$ mot (2) Valeur initiale de T_OFB (de 0 à 32767, par défaut = 200). O1_DEF$ mot (2) Valeur initiale de la sortie n°1 par défaut (de -32768 à 32767, par défaut = 0 ). O2_DEF$ mot (2) Valeur initiale de la sortie n°2 par défaut (de -32768 à 32767, par défaut = 0 ). O3_DEF$ mot (2) Valeur initiale de la sortie n°3 par défaut (de -32768 à 32767, par défaut = 0 ). O4_DEF$ mot (2) Valeur initiale de la sortie n°4 par défaut (de -32768 à 32767, par défaut = 0 ). O5_DEF$ mot (2) Valeur initiale de la sortie n°5 par défaut (de -32768 à 32767, par défaut = 0 ). O6_DEF$ mot (2) Valeur initiale de la sortie n°6 par défaut (de -32768 à 32767, par défaut = 0 ). ESV[62] tableau (2) de mots Contenu de la base de connaissance : Entrées, Sorties, Variables intermédiaires (par défaut à 0). FA[576] tableau (2) de mots Contenu de la base de connaissance : Fonctions d’appartenance (par défaut, aucune fonction d’appartenance). RG[384] tableau (2) de mots Contenu de la base de connaissance : Règles (par défaut, aucune règle). ___________________________________________________________________________ 2/8 Bloc fonction XFUZ 2.4 2 Informations de diagnostic Quatre variables permettent de gérer les comptes-rendus de l’OFB : • • • • STATUS : mot de compte-rendu de fonctionnement (paramètre de sortie), ERROR : bit d’erreur (paramètre de sortie), INHIB : bit d’inhibition (donnée interne), COMMAND : le bit 8 du mot COMMAND (donnée interne) permet d’inhiber l’alarme "aucune règle active". Chaque bit du mot STATUS à 1 indique une erreur, une information ou une alarme au sujet de l’OFB. Un bit du mot de STATUS mis à 1 repasse à 0 lorsque la cause de l’erreur, de l’information ou de l’alarme a disparu. Si le bit INHIB est à 0, un bit d’erreur du mot de STATUS à 1 fait monter le bit ERROR de l’OFB. Le bit ERROR redescend à 0 lorsque tous les bits d’erreur du mot de STATUS sont à 0 ou que le bit INHIB est à 1. Note : Les informations et les alarmes signalées par les bits du STATUS n’ont pas d’effet sur le bit ERROR. Signification des bits du mot STATUS : • bit 0 : valeur par défaut sur la sortie n°1 (information) • bit 1 : valeur par défaut sur la sortie n°2 (information) • bit 2 : valeur par défaut sur la sortie n°3 (information) • bit 3 : valeur par défaut sur la sortie n°4 (information) • bit 4 : valeur par défaut sur la sortie n°5 (information) • bit 5 : valeur par défaut sur la sortie n°6 (information) • bit 6 : aucune règle active (alarme) • bit 7 : processeur de type incorrect (erreur) • bit 8 : erreur au niveau de la base de connaissance - aucune fonction d’appartenance dans la base - aucune règle dans la base (erreur) • bit 9 : erreur au niveau de la base de connaissance (erreur) - paramétrage des sorties ou variables intermédiaires incorrect : Discr < 3 ou Discr >20 ou (BorneSup - BorneInf) < 2*(Discr -1) • bit 10: erreur au niveau de la base de connaissance (erreur) - mauvais classement des fonctions d’appartenance (voir chapitre 3.2-3) - fonctions d’appartenance se référant à des variables inexistantes • bit 11: erreur au niveau de la base de connaissance - abscisses des points A, B, C et D des fonctions d’appartenance mal classées (erreur) • bit 12: erreur au niveau de la base de connaissance (erreur) - règles se référant à des fonctions d’appartenance inexistantes - fonctions d’appartenance d’entrée indiquées en sortie de règles ___________________________________________________________________________ 2/9 • bit 13: erreur au niveau de la base de connaissance (erreur) - sorties de deuxième inférence indiquées en entrée de règles - variables intermédiaires indiquées en sortie de règles en deuxième inférence • bit 14: erreur au niveau de la base de connaissance (erreur) - deuxième inférence impossible en mode sortie singleton (OUT_PT=1) - défuzzification par moyenne des maxima impossible en mode sortie singleton (OUT_PT=1) • bit 15: non utilisé 2.5 Le mot COMMAND. Le mot COMMAND a deux rôles : • déterminer les paramètres d’entrée à forcer (8 bits de poids faible), • inhiber l’alarme "aucune règle active". bit 0 : forçage de l’entrée INP1 : la valeur de I1_SIM est utilisée dans les calculs à la place de celle de INP1. bit 1 : forçage de l’entrée INP2 : la valeur de I2_SIM est utilisée dans les calculs à la place de celle de INP2. bit 2 : forçage de l’entrée INP3 : la valeur de I3_SIM est utilisée dans les calculs à la place de celle de INP3. bit 3 : forçage de l’entrée INP4 : la valeur de I4_SIM est utilisée dans les calculs à la place de celle de INP4. bit 4 : forçage de l’entrée INP5 : la valeur de I5_SIM est utilisée dans les calculs à la place de celle de INP5. bit 5 : forçage de l’entrée INP6 : la valeur de I6_SIM est utilisée dans les calculs à la place de celle de INP6. bit 6 : forçage de l’entrée INP7 : la valeur de I7_SIM est utilisée dans les calculs à la place de celle de INP7. bit 7 : forçage de l’entrée INP8 : la valeur de I8_SIM est utilisée dans les calculs à la place de celle de INP8. bit 8 : inhibition de l’alarme "aucune règle active" : le bit 6 du mot STATUS reste toujours à 0. ___________________________________________________________________________ 2/10 Bloc fonction XFUZ 2.6 2 Modes de marches de l’OFB XFUZ 2.6-1 Comportement sur reprise à froid Les constantes internes d’initialisation dont le nom finit par $ sont recopiées dans les données internes correspondantes. Les sorties OUTi et les données internes Oi_MAN et Oi_CALC sont initialisées avec les valeurs des constantes Oi_DEF$ (avec i = 1 à 6). Toutes les autres données internes sont initialisées à 0. En particulier, MAN_AUTO = 0 (mode MANUEL) et START = 0. La base de règles floues (constantes internes ESV, FA et RG) est recopiée dans les données privées de l’OFB. 2.6-2 Comportement sur reprise à chaud Il n’y a aucun traitement spécial, l’OFB continue dans l’état où il était auparavant. 2.6-3 Comportement sur front montant de INIT Le traitement est identique à celui d’une reprise à froid. 2.6-4 Comportement sur front montant de REFRESH Les constantes internes d’initialisation dont le nom finit par $ sont recopiées dans les données internes correspondantes. Les sorties OUTi et les données internes Oi_MAN et Oi_CALC sont initialisées avec les valeurs des constantes Oi_DEF$ (avec i = 1 à 6). La base de règles floues (constantes internes ESV, FA et RG) est recopiée dans les données privées de l’OFB. Toutes les autres données internes conservent leur valeurs (en particulier MAN_AUTO et START). ___________________________________________________________________________ 2/11 2.6-5 Comportement nominal de l’OFB (lors de chaque appel par exec) Le graphique suivant (en symbolique Grafcet) indique les modes de fonctionnement et le séquencement associé à la période T_OFB qui a été configurée : IN point d'entrée exec ( ) INIT = 0 & REFRESH = 0 REFRESH passe à 1 Mise à jour de la base de connaissance INIT passe à 1 1 1 OUT Suivant la valeur des bits du mot COMMAND : - Lecture des entrées réelles INPi ou - Lecture des entrées simulées Ii_SIM sinon CONT_ASK=1 & START passe à 1 calcul des inférences OUT CONT_ASK=0 & START=1 increment= increment + 1 increment= sinon T_OFB / T_CYCLE calcul des OUT références MAN_AUTO=0 affectation des sorties manuelles 1 MAN_AUTO=1 affectation des sorties calculées 1 OUT Initialisation de l'OFB MAN_AUTO=0 affectation des sorties manuelles 1 MAN_AUTO=1 affectation des sorties calculées 1 OUT OUT OUT ___________________________________________________________________________ 2/12 Bloc fonction XFUZ 2.7 2 Forçage des paramètres d’entrée Le mécanisme de forçage utilise les données internes suivantes : • le mot de commande COMMAND, • 1 donnée interne Ii_SIM par paramètre d’entrée (i étant le n° du paramètre d’entrée). Dans COMMAND, si le bit d’un paramètre d’entrée est à 0, l’OFB utilise la valeur du paramètre d’entrée INPi et si le même bit est à 1, l’OFB utilise la valeur de Ii_SIM. Le rang du bit dans COMMAND est fonction du rang du paramètre d’entrée, le bit COMMAND,0 correspond à l’entrée INP1, etc. 2.8 Contrôle de la base de connaissances Lors de l’initialisation des données internes de l’OFB à partir des constantes internes d’initialisation, l’OFB vérifie la cohérence de la base de connaissance. Si des erreurs sont détectées, un bit du mot STATUS passe à 1, ainsi que le bit ERROR. Ces traitements sont activés : • sur reprise à froid, • sur front montant du bit INIT, • sur front montant du bit REFRESH. Remarque Si l’on modifie les constantes internes OUT_PT ou OP_DEFUZ sans provoquer l’un des événements cités ci-dessus, la base de connaissance peut devenir incohérente sans que l’utilisateur en soit informé. On peut alors se trouver dans l’un des deux cas suivants : • Existence d’une deuxième inférence en mode sortie singleton : l’évaluation des règles de deuxième inférence est alors erronée. • Défuzzification par moyenne des maxima en mode sortie singleton : la défuzzification se fait toujours suivant le centre de gravité. Ce n’est que sur reprise à froid ou sur front montant des bits INIT ou REFRESH que le bit 14 du STATUS et le bit ERROR passeront à 1. Le calcul des inférences sera alors bloqué. ___________________________________________________________________________ 2/13 2.9 Performances de l’OFB XFUZ Occupation mémoire Espace programme Espace données Espace constantes 8280 mots quel que soit le nombre d’utilisation 1424 mots par utilisation 1040 mots par utilisation 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 le tableau ci-dessous ont été mesurés dans les conditions suivantes : • 4 entrées, 3 sorties, • 13 règles (sans 2ème inférence), • 19 fonctions d’appartenance. TSX 47-40 TSX 67-40 TSX 87-40 TSX 107-40 Sorties singletons 11,1 ms 4,7 ms 3,6 ms 3,5 ms Sorties normales 39,6 ms 16,9 ms 12,8 ms 12,4 ms ___________________________________________________________________________ 2/14 Mise en œuvre de l'OFB XFUZ 33 Chapitre 3 Mise en œuvre de l'OFB XFUZ 3.1 Configuration de l’OFB La configuration de l’OFB et la programmation de la base de connaissance se font par écriture dans les constantes de l’OFB. Ces opérations peuvent être effectuées directement à partir de PL7-3 en mode constantes. Opérateurs flous L’utilisateur a le choix entre plusieurs méthodes pour les différentes étapes du calcul des inférences. Les valeurs des opérateurs sont à 0 lors du chargement de l’OFB dans l’application ce qui correspond aux inférences dites "de Mamdani". OP_CONJ : OP_ET : OP_IMPL : OP_AGREG : OP_DEFUZ : Conjugaison ET Implication Agrégation Défuzzification Valeurs par défaut Autre choix 0 : Min/Max 0 : Minimum 0 : Minimum 0 : Maximum 0 : Centre de gravité (pas d’autre possibilité) 1 : Multiplication 1 : Multiplication (pas d’autre possibilité) 1 : Barycentre des maxima Ces opérateurs n’ont pas de données internes qui leur correspondent. Mode de calcul des sorties Choix du calcul des inférences en mode normal (OUT_PT=0) ou en prenant des fonctions d’appartenance de sortie réduites à un point (OUT_PT=1). Le mode OUT_PT = 1 est incompatible avec l’existence de règles de deuxième inférence ainsi qu’avec la défuzzification par barycentre des maxima (OP_DEFUZ = 1). Cette incompatibilité est signalée par le bit 14 du mot STATUS. Cet opérateur n’a pas de donnée interne qui lui corresponde. Mode de fonctionnement CONTASK$ est la valeur initiale de la donnée interne associée CONT_ASK (mode de fonctionnement continu/sur demande) : • CONTASK$=0 : mode "CONTINU", • CONTASK$=1 : mode "SUR DEMANDE". Période de l’OFB La période des inférences (en mode "continu") peut être différente de la période de la tâche contenant l’OFB. T_OFB$ est la valeur initiale de la donnée interne T_OFB, qui fixe la période de l’OFB. T_OFB est réajustée par l’OFB, pour être un multiple de la période de la tâche contenant l’OFB. Valeurs des sorties par défaut Lorsqu’aucune des règles concernant une sortie n’est active, cette sortie prend une valeur par défaut fixée par l’utilisateur. Ces valeurs par défaut sont sauvegardées dans les constantes O1_DEF$, ..., O6_DEF$. Les valeurs réellement utilisées par l’OFB sont les données internes O1_DEF, ..., O6_DEF associées. ___________________________________________________________________________ 3/1 3.2 Programmation de la base de connaissance 3.2-1 Codage des chaînes ASCII Les termes linguistiques associés aux fonctions d’appartenance et le nom des variables intermédiaires sont codés par blocs de deux caractères, chaque bloc étant un mot constant de 16 bits. Le codage de chaque mot est le suivant : (code ASCII 2ème caractère) x 256 + (code ASCII 1er caractère). 3.2-2 Entrées-Sorties-Variables intermédiaires (ESV) Entrées Les éléments 0 à 15 du tableau ESV concernent les 8 entrées de l’OFB. Pour chaque entrée utilisée, on indique la borne inférieure (BorneInf) et la borne supérieure (BorneSup). Il n’est toutefois pas obligatoire d’indiquer ces valeurs car elles ne sont pas utilisées dans les calculs mais uniquement pour l’affichage éventuel dans des outils externes. Sorties Les éléments 16 à 33 du tableau ESV concernent les 6 sorties. Pour chaque sortie utilisée, il faut indiquer la borne inférieure (BorneInf), la borne supérieure (BorneSup) et le nombre de points de discrétisation (Discr). Ces valeurs sont indispensables pour les calculs. Les valeurs saisies doivent respecter les limitations suivantes : • 3 <= Discr <= 20 • BorneSup - BorneInf >= 2*(Discr-1) Le cas échéant, le bit 9 du mot STATUS passe à 1. Variables intermédiaires Deux zones du tableau ESV concernent les variables intermédiaires : • les éléments 34 à 45 sont indispensables comme pour les sorties (BorneInf, BorneSup, Discr). Les limitations sont les mêmes que pour les sorties. • les éléments 46 à 61 permettent de coder les noms associés aux variables (voir Codage des chaînes ASCII). Ces valeurs ne sont pas indispensables car elles ne sont utilisées que pour l’affichage éventuel dans des outils externes. ___________________________________________________________________________ 3/2 Mise en œuvre de l'OFB XFUZ 3 3.2-3 Fonctions d’appartenance (FA) Les 64 fonctions d’appartenance sont codées dans le tableau FA. Chaque fonction d’appartenance utilise 9 constantes, le tableau a donc une longueur totale de 576 valeurs. On devra obligatoirement classer les fonctions d’appartenance en commençant par celles se rapportant à des entrées, puis celles se rapportant à des sorties ou variables intermédiaires. Si ce classement est incorrect, le bit ERROR sera mis à 1 ainsi que le bit 10 du mot STATUS au moment de la mise à jour de la base de connaissance et les inférences seront bloquées. Codage de chaque fonction d’appartenance : • 4 premiers mots : terme linguistique de 8 caractères (voir Codage des chaînes ASCII). • variable associée : c’est un numéro associé à l’entrée, la sortie ou la variable intermédiaire concernée par la fonction d’appartenance dont la valeur sera : - de 0 à 7 pour une entrée (INP1 à INP8), - de 8 à 13 pour une sortie (OUT1 à OUT6), - de 14 à 17 pour une variable intermédiaire (VAR1 à VAR4). Il ne doit y avoir aucun trou dans le tableau de fonctions d’appartenance. Si n fonctions d’appartenance (n<64) sont utilisées, il faudra mettre la valeur 999 à l’emplacement de la variable de la fonction d’appartenance n+1. • 4 points d’inflexion. Quelle que soit sa forme, une fonction d’appartenance sera toujours définie par 4 points xA, xB, xC et xD : - demi-trapèze ouvert à gauche xC -32768 xD Cette forme est codée en faisant prendre la valeur -32768 (minimum des entiers) aux points xA et xB. - trapèze - triangle xA xB xC xD Dans le cas d’un triangle, xB et xC sont confondus. ___________________________________________________________________________ 3/3 - demi-trapèze ouvert à droite xA xB 32767 Cette forme est codée en faisant prendre la valeur 32767 (maximum des entiers) aux points xC et xD. - Fonction d’appartenance de sortie réduite à un point Ce type de fonction d’appartenance n’est opérationnel que lorsque la constante interne OUT_PT vaut 1. Dans ce cas, le plus simple est de positionner tous les points à la valeur désirée. La valeur réellement prise en compte est celle de XB, sauf si cette dernière vaut -32768. Dans ce cas, c’est la valeur de XC qui est significative. Remarque On devra toujours avoir xA ≤ xB ≤ xC ≤ xD. Dans le cas contraire, le bit ERROR sera mis à 1 ainsi que le bit 11 du mot STATUS au moment de la mise à jour de la base de connaissance et les inférences seront bloquées. 3.2-4 Règles (RG) Les 64 règles sont codées dans le tableau RG. Chaque règle utilise 6 constantes, le tableau a donc une longueur totale de 384 valeurs. Les 4 premiers mots sont les numéros des fonctions d’appartenance des 4 prédicats possibles, les 2 derniers sont les numéros des fonctions d’appartenance des 2 conclusions possibles. On peut faire intervenir une négation sur les prédicats (ex : Pression Non élevée). Pour cela on ajoute 100 au numéro de la fonction d’appartenance sans négation (ex : Pression élevée : n°3 donne Pression Non élevée : 103). Si un prédicat ou une conclusion n’est pas utilisée, on mettra la valeur 999 à la place du numéro de la fonction d’appartenance. Comme pour le tableau FA, il ne doit y avoir aucun trou. Si n règles sont utilisées (n<64), on mettra la valeur 999 dans les 4 prédicats de la règle n+1. ___________________________________________________________________________ 3/4 Mise en œuvre de l'OFB XFUZ 3.3 3 Exemple de création de base de connaissance 3.3-1 Données Soit à coder l’exemple suivant : • Entrées : - Pression (0 ...35)(INP1), - Température (-50...100)(INP4). • Variable intermédiaire : - Débit (0...800)(VAR1). • Sortie : - Ouverture (0...10)(OUT3). Fonctions d’appartenance Pression faible 0 moyenne 1 3 10 15 forte 18 25 35 Température basse -50 élevée -10 1 20 30 100 Débit faible 0 moyen 100 200 fort 400 500 800 ___________________________________________________________________________ 3/5 Ouverture petite 0 grande 3 7 10 Règles Si Pression faible et Température non élevée alors Débit fort. Si Pression forte alors Débit faible. Si Température élevée et Pression moyenne alors Débit moyen. Si Débit faible alors Ouverture petite. Si Débit fort alors Ouverture grande. ___________________________________________________________________________ 3/6 Mise en œuvre de l'OFB XFUZ 3 3.3-2 Réalisation du codage Ecriture du tableau ESV Entrées Deux entrées sont utilisées, INP1 et INP4. Ecrivons les bornes inférieures et supérieures Pour INP1 ligne 0 : ligne 1 : 0 35 Pour INP4 ligne 6 : ligne 7 : -50 100 Sorties Une seule sortie est utilisée : OUT3 Nous écrivons (obligatoire) la borne inférieure, la borne supérieure et le nombre de points de discrétisation que nous prendrons ici égal à la valeur maximale, c’est-à-dire 20. ligne 22 : ligne 23 : ligne 24 : 0 10 20 Variable intermédiaire Une seule est utilisée : VAR1 Nous écrivons (obligatoire) la borne inférieure, la borne supérieure et le nombre de points de discrétisation que nous prendrons ici égal à la valeur maximale, c’est-à-dire 20. ligne 34 : ligne 35 : ligne 36 : 0 800 20 Nous pouvons aussi coder le nom "Débit" de cette variable intermédiaire (facultatif). ligne 46 : ligne 47 : ligne 48 : ligne 49 : H'8244' "Dé" H'6962' "bi" H'0074' "t" 0 ___________________________________________________________________________ 3/7 Ecriture du tableau FA Il faut tout d’abord associer un numéro à chaque fonction d’appartenance, en commençant par les fonctions d’appartenance d’entrées, puis celles de sorties et variables intermédiaires : 0 1 2 3 4 5 6 7 8 9 Pression faible Pression moyenne Pression forte Température basse Température élevée Ouverture petite Ouverture grande Débit faible Débit moyen Débit fort FA0 : ligne 0 : H'6166' "fa" ligne 1 : H'6269' "ib" ligne 2 : H'656C' "le" ligne 3 : 0 ligne 4 : 0 variable correspondant à INP1 ligne 5 : -32768 demi-trapèze ouvert à gauche ligne 6 : -32768 demi-trapèze ouvert à gauche ligne 7 : 3 point xC ligne 8 : 10 point xD FA8 : ligne 72 : H'6F6D' "mo" ligne 73 : H'6579' "ye" ligne 74 : H'006E' "n" ligne 75 : 0 ligne 76 : 14 variable correspondant à VAR1 ligne 77 : 100 xA ligne 78 : 200 xB ligne 79 : 400 xC ligne 80 : 500 xD Les autres fonctions sont codées de la même façon (voir tableau complet). La fonction d’appartenance n°10 est la première à ne pas être utilisée. On mettra donc 999 à la place de la variable. ligne 94 : 999 ___________________________________________________________________________ 3/8 Mise en œuvre de l'OFB XFUZ 3 Ecriture du tableau RG Numérotons les règles : 0 1 2 3 4 Si Pression faible et Température non élevée alors Débit fort Si Pression forte alors Débit faible Si Température élevée et Pression moyenne alors Débit moyen Si Débit faible alors Ouverture petite Si Débit fort alors Ouverture grande D’où le codage : REG0 ligne 0 : ligne 1 : ligne 2 : ligne 3 : ligne 4 : ligne 5 : 0 104 999 999 9 999 FA0 (Pression faible) FA4 (Température élevée) +100 pour négation inutilisé inutilisé FA9 (Débit fort) inutilisée (prédicat) (prédicat) (prédicat) (prédicat) (conclusion) (conclusion) Les autres règles sont codées de la même façon (voir tableau complet). La règle REG5 est la première à ne pas être utilisée. Il faut donc indiquer 999 pour les 4 prédicats (lignes 30 à 33). ___________________________________________________________________________ 3/9 3.3-3 Tableau de programmation complète Sont présentées ici les parties des tableaux utilisées pour programmer l’exemple précédent. Toutes les valeurs non indiquées (et les pages non présentées) seront laissées à 0. Tableau ESV ESV INP1 INP2 INP3 BorneInf 0 0 BorneSup 1 35 BorneInf 2 BorneSup 3 OUT6 VAR1 BorneInf 31 BorneSup 32 Discr 33 BorneInf 34 0 BorneInf 4 BorneSup 35 800 BorneSup 5 Discr 36 20 BorneInf 6 -50 BorneInf 37 BorneSup 7 100 BorneSup 38 INP5 BorneInf 8 Discr 39 BorneSup 9 INP6 BorneInf 10 BorneSup 11 INP7 BorneInf 12 BorneSup 13 BorneInf 14 BorneSup 15 BorneInf BorneSup INP4 INP8 OUT1 OUT2 OUT3 OUT4 OUT5 VAR2 VAR3 BorneInf 40 BorneSup 41 Discr 42 BorneInf 43 BorneSup 44 Discr 45 Nom(1-2) 46 -32188 16 Nom(3-4) 47 26978 17 Nom(5-6) 48 116 Discr 18 BorneInf 19 BorneSup 20 Discr 21 BorneInf 22 VAR4 VAR1 VAR2 0 BorneSup 23 10 Discr 24 20 BorneInf 25 BorneSup 26 Discr 27 BorneInf BorneSup Discr VAR3 Nom(7-8) 49 Nom(1-2) 50 Nom(3-4) 51 Nom(5-6) 52 Nom(7-8) 53 Nom(1-2) 54 Nom(3-4) 55 Nom(5-6) 56 Nom(7-8) 57 Nom(1-2) 58 28 Nom(3-4) 59 29 Nom(5-6) 60 30 Nom(7-8) 61 VAR4 ___________________________________________________________________________ 3/10 Mise en œuvre de l'OFB XFUZ 3 Tableau FA FA FA0 FA1 FA2 Nom(1-2) 0 24934 Nom(1-2) 27 24930 Nom(3-4) 1 25193 FA3 Nom(3-4) 28 29555 Nom(5-6) 2 25964 Nom(5-6) 29 101 Nom(7-8) 3 0 Nom(7-8) 30 0 Variable 4 0 Variable 31 3 xA 5 -32768 xA 32 -32768 xB 6 -32768 xB 33 -32768 xC 7 3 xC 34 -10 xD 8 10 xD 35 20 Nom(1-2) 9 28525 Nom(1-2) 36 27778 Nom(3-4) 10 25977 Nom(3-4) 37 30309 Nom(5-6) 11 28270 Nom(5-6) 38 25986 Nom(7-8) 12 101 Variable 13 0 FA4 Nom(7-8) 39 0 Variable 40 3 xA 14 1 xA 41 1 xB 15 15 xB 42 30 xC 16 15 xC 43 32767 xD 44 32767 Nom(1-2) 45 25968 xD 17 25 Nom(1-2) 18 28518 Nom(3-4) 19 29810 Nom(3-4) 46 26996 Nom(5-6) 20 101 Nom(5-6) 47 25972 FA5 Nom(7-8) 21 0 Nom(7-8) 48 0 Variable 22 0 Variable 49 10 xA 23 18 xA 50 -32768 xB 24 18 xB 51 -32768 xC 25 32767 xC 52 3 xD 26 32767 xD 53 7 ___________________________________________________________________________ 3/11 FA6 FA7 FA8 Nom(1-2) 54 29287 Nom(1-2) 81 28518 Nom(3-4) 55 28257 FA9 Nom(3-4) 82 29810 Nom(5-6) 56 25956 Nom(5-6) 83 0 Nom(7-8) 57 0 Nom(7-8) 84 0 Variable 58 10 Variable 85 14 xA 59 3 xA 86 400 xB 60 7 xB 87 500 xC 61 32767 xC 88 32767 xD 62 32767 xD 89 32767 Nom(1-2) 63 24934 Nom(1-2) 90 Nom(3-4) 64 25193 Nom(3-4) 91 Nom(5-6) 65 25964 Nom(5-6) 92 FA10 Nom(7-8) 66 0 Nom(7-8) 93 Variable 67 14 Variable 94 xA 68 -32768 xA 95 xB 69 -32768 xB 96 xC 70 100 xC 97 xD 98 Nom(1-2) 99 xD 71 200 Nom(1-2) 72 28525 Nom(3-4) 73 25977 Nom(3-4) 100 Nom(5-6) 74 110 Nom(5-6) 101 Nom(7-8) 75 0 Nom(7-8) 102 Variable 76 14 Variable 103 xA 77 100 xA 104 xB 78 200 xB 105 xC 79 400 xC 106 xD 80 500 xD 107 FA11 999 ___________________________________________________________________________ 3/12 Mise en œuvre de l'OFB XFUZ 3 Tableau RG RG REG0 REG1 REG2 REG3 REG4 Pred1 0 0 Pred1 30 999 Pred2 1 104 Pred2 31 999 Pred3 2 999 Pred3 32 999 Pred4 3 999 Pred4 33 999 Concl1 4 9 Concl1 34 Concl2 5 999 Concl2 35 Pred1 6 2 Pred1 36 Pred2 7 999 Pred2 37 Pred3 8 999 Pred3 38 Pred4 9 999 Pred4 39 Concl1 10 7 Concl1 40 Concl2 11 999 Concl2 41 Pred1 12 4 Pred1 42 Pred2 13 1 Pred2 43 Pred3 14 999 Pred3 44 Pred4 15 999 Pred4 45 Concl1 16 8 Concl1 46 Concl2 17 999 Pred1 18 7 Pred2 19 Pred3 20 Pred4 Concl1 REG5 REG6 REG7 Concl2 47 Pred1 48 999 Pred2 49 999 Pred3 50 21 999 Pred4 51 22 5 Concl1 52 Concl2 23 999 Concl2 53 Pred1 24 9 Pred1 54 Pred2 25 999 Pred2 55 Pred3 26 999 Pred3 56 Pred4 27 999 Pred4 57 Concl1 28 6 Concl1 58 Concl2 29 999 Concl2 59 REG8 REG9 ___________________________________________________________________________ 3/13 3.4 Description complète des tableaux de constantes ESV, FA et RG Tableau ESV Ce tableau regroupe les paramètres relatifs aux entrées (borne inférieure*, borne supérieure*), sorties (borne inférieure, borne supérieure, nombre de points de discrétisation) et variables intermédiaires (borne inférieure, borne supérieure, nombre de points de discrétisation, nom* sur 8 caractères). (*) Ce paramètre n’est pas utilisé pour les calculs dans l’OFB mais peut être nécessaire pour un affichage dans un outil externe. ↓ INP1 INP2 INP3 INP4 INP5 INP6 INP7 INP8 OUT1 OUT2 BorneInf 0 BorneSup 1 BorneInf 2 BorneSup 3 BorneInf 4 BorneSup 5 BorneInf 6 ↓ OUT3 OUT4 OUT5 BorneInf 22 BorneSup 23 Discr 24 BorneInf 25 BorneSup 26 ↓ VAR4 VAR1 BorneInf 43 BorneSup 44 Discr 45 Nom(1-2) 46 Nom(3-4) 47 Discr 27 Nom(5-6) 48 BorneInf 28 Nom(7-8) 49 BorneSup 7 BorneSup 29 Nom(1-2) 50 BorneInf 8 Discr 30 Nom(3-4) 51 BorneSup 9 BorneInf 31 Nom(5-6) 52 BorneInf 10 BorneSup 32 Nom(7-8) 53 BorneSup 11 Discr 33 Nom(1-2) 54 BorneInf 34 Nom(3-4) 55 BorneSup 35 Nom(5-6) 56 BorneInf 12 BorneSup 13 BorneInf 14 BorneSup 15 BorneInf 16 BorneSup 17 Discr 18 BorneInf BorneSup Discr 21 OUT6 VAR2 VAR1 VAR2 Discr 36 BorneInf 37 BorneSup 38 VAR3 VAR4 Nom(7-8) 57 Nom(1-2) 58 Nom(3-4) 59 Discr 39 Nom(5-6) 60 BorneInf 40 Nom(7-8) 61 19 BorneSup 41 20 Discr 42 VAR3 ___________________________________________________________________________ 3/14 Mise en œuvre de l'OFB XFUZ 3 Tableau FA Ce tableau regroupe les paramètres relatifs aux 64 fonctions d’appartenance (0 à 63), nom* ( terme linguistique sur 8 caractères), n° de la variable concernée (entrée, sortie ou VI), 4 points de définition de la fonction. (*) ce paramètre n’est pas utilisé pour les calculs dans l’OFB mais peut être nécessaire pour un affichage dans un outil externe. ↓ FA0 FA1 FA2 Nom(1-2) 0 Nom(3-4) Nom(5-6) ↓ FA3 Nom(1-2) 27 1 Nom(3-4) 2 Nom(5-6) ↓ FA6 Nom(1-2) 54 28 Nom(3-4) 55 29 Nom(5-6) 56 Nom(7-8) 3 Nom(7-8) 30 Nom(7-8) 57 Variable 4 Variable 31 Variable 58 xA 5 xA 32 xA 59 xB 6 xB 33 xB 60 xC 7 xC 34 xC 61 xD 8 xD 35 xD 62 Nom(1-2) 9 Nom(1-2) 36 Nom(1-2) 63 Nom(3-4) 10 Nom(3-4) 37 Nom(3-4) 64 Nom(5-6) 11 Nom(5-6) 38 Nom(5-6) 65 Nom(7-8) 12 Nom(7-8) 39 Nom(7-8) 66 Variable 13 Variable 40 Variable 67 xA 14 xA 41 xA 68 xB 15 xB 42 xB 69 xC 16 xC 43 xC 70 xD 71 Nom(1-2) 72 xD 17 Nom(1-2) 18 Nom(3-4) FA4 FA7 xD 44 Nom(1-2) 45 19 Nom(3-4) 46 Nom(3-4) 73 Nom(5-6) 20 Nom(5-6) 47 Nom(5-6) 74 Nom(7-8) 21 Nom(7-8) 48 Nom(7-8) 75 Variable 22 Variable 49 Variable 76 xA 23 xA 50 xA 77 xB 24 xB 51 xB 78 xC 25 xC 52 xC 79 xD 26 xD 53 xD 80 FA5 FA8 ___________________________________________________________________________ 3/15 ↓ FA9 8 FA10 FA11 Nom(1-2) 81 Nom(3-4) Nom(5-6) ↓ FA12 Nom(1-2) 108 82 Nom(3-4) 83 Nom(5-6) ↓ FA15 Nom(1-2) 135 109 Nom(3-4) 136 110 Nom(5-6) 137 Nom(7-8) 84 Nom(7-8) 111 Nom(7-8) 138 Variable 85 Variable 112 Variable 139 xA 86 xA 113 xA 140 xB 87 xB 114 xB 141 xC 88 xC 115 xC 142 xD 89 xD 116 xD 143 Nom(1-2) 90 Nom(1-2) 117 Nom(1-2) 144 Nom(3-4) 91 Nom(3-4) 118 Nom(3-4) 145 Nom(5-6) 92 Nom(5-6) 119 Nom(5-6) 146 Nom(7-8) 93 Nom(7-8) 120 Nom(7-8) 147 Variable 94 Variable 121 Variable 148 xA 95 xA 122 xA 149 xB 96 xB 123 xB 150 xC 97 xC 124 xC 151 xD 152 Nom(1-2) 153 xD 98 Nom(1-2) 99 Nom(3-4) Nom(5-6) FA13 FA16 xD 125 Nom(1-2) 126 100 Nom(3-4) 127 Nom(3-4) 154 101 Nom(5-6) 128 Nom(5-6) 155 FA14 FA17 Nom(7-8) 102 Nom(7-8) 129 Nom(7-8) 156 Variable 103 Variable 130 Variable 157 xA 104 xA 131 xA 158 xB 105 xB 132 xB 159 xC 106 xC 133 xC 160 xD 107 xD 134 xD 161 ___________________________________________________________________________ 3/16 Mise en œuvre de l'OFB XFUZ ↓ FA18 FA19 FA20 ↓ FA21 3 ↓ Nom(1-2) 162 Nom(1-2) 189 Nom(1-2) 216 Nom(3-4) 163 Nom(3-4) 190 Nom(3-4) 217 Nom(5-6) 164 Nom(5-6) 191 Nom(5-6) 218 Nom(7-8) 165 Nom(7-8) 192 Nom(7-8) 219 Variable 166 Variable 193 Variable 220 xA 167 xA 194 xA 221 xB 168 xB 195 xB 222 xC 169 xC 196 xC 223 xD 170 xD 197 xD 224 Nom(1-2) 171 Nom(1-2) 198 Nom(1-2) 225 Nom(3-4) 172 Nom(3-4) 199 Nom(3-4) 226 Nom(5-6) 173 Nom(5-6) 200 Nom(5-6) 227 FA22 FA24 FA25 Nom(7-8) 174 Nom(7-8) 201 Nom(7-8) 228 Variable 175 Variable 202 Variable 229 xA 176 xA 203 xA 230 xB 177 xB 204 xB 231 xC 178 xC 205 xC 232 xD 179 Nom(1-2) 180 xD 206 Nom(1-2) 207 Nom(3-4) Nom(5-6) 181 Nom(3-4) 182 Nom(5-6) FA23 xD 233 Nom(1-2) 234 208 Nom(3-4) 235 209 Nom(5-6) 236 FA26 Nom(7-8) 183 Nom(7-8) 210 Nom(7-8) 237 Variable 184 Variable 211 Variable 238 xA 185 xA 212 xA 239 xB 186 xB 213 xB 240 xC 187 xC 214 xC 241 xD 188 xD 215 xD 242 ___________________________________________________________________________ 3/17 ↓ FA27 FA28 FA29 Nom(1-2) 243 Nom(3-4) ↓ FA30 Nom(1-2) 270 244 Nom(3-4) Nom(5-6) 245 Nom(7-8) 246 Variable xA xB xC ↓ Nom(1-2) 297 271 Nom(3-4) 298 Nom(5-6) 272 Nom(5-6) 299 Nom(7-8) 273 Nom(7-8) 300 247 Variable 274 Variable 301 248 xA 275 xA 302 249 xB 276 xB 303 250 xC 277 xC 304 xD 251 xD 278 xD 305 Nom(1-2) 252 Nom(1-2) 279 Nom(1-2) 306 Nom(3-4) 253 Nom(3-4) 280 Nom(3-4) 307 Nom(5-6) 254 Nom(5-6) 281 Nom(5-6) 308 Nom(7-8) 255 Nom(7-8) 282 Nom(7-8) 309 Variable 256 Variable 283 Variable 310 xA 257 xA 284 xA 311 xB 258 xB 285 xB 312 xC 259 xC 286 xC 313 xD 260 xD 287 xD 314 Nom(1-2) 261 Nom(1-2) 288 Nom(1-2) 315 Nom(3-4) 262 Nom(3-4) 289 Nom(3-4) 316 Nom(5-6) 263 Nom(5-6) 290 Nom(5-6) 317 FA31 FA32 FA33 FA34 FA35 Nom(7-8) 264 Nom(7-8) 291 Nom(7-8) 318 Variable 265 Variable 292 Variable 319 xA 266 xA 293 xA 320 xB 267 xB 294 xB 321 xC 268 xC 295 xC 322 xD 269 xD 296 xD 323 ___________________________________________________________________________ 3/18 Mise en œuvre de l'OFB XFUZ ↓ FA36 FA37 FA38 ↓ FA39 3 ↓ Nom(1-2) 324 Nom(1-2) 351 Nom(1-2) 378 Nom(3-4) 325 Nom(3-4) 352 Nom(3-4) 379 Nom(5-6) 326 Nom(5-6) 353 Nom(5-6) 380 Nom(7-8) 327 Nom(7-8) 354 Nom(7-8) 381 Variable 328 Variable 355 Variable 382 xA 329 xA 356 xA 383 xB 330 xB 357 xB 384 xC 331 xC 358 xC 385 xD 332 xD 359 xD 386 Nom(1-2) 333 Nom(1-2) 360 Nom(1-2) 387 Nom(3-4) 334 Nom(3-4) 361 Nom(3-4) 388 Nom(5-6) 335 Nom(5-6) 362 Nom(5-6) 389 FA40 FA42 FA43 Nom(7-8) 336 Nom(7-8) 363 Nom(7-8) 390 Variable 337 Variable 364 Variable 391 xA 338 xA 365 xA 392 xB 339 xB 366 xB 393 xC 340 xC 367 xC 394 xD 341 Nom(1-2) 342 xD 368 Nom(1-2) 369 Nom(3-4) Nom(5-6) 343 Nom(3-4) 344 Nom(5-6) FA41 xD 395 Nom(1-2) 396 370 Nom(3-4) 397 371 Nom(5-6) 398 FA44 Nom(7-8) 345 Nom(7-8) 372 Nom(7-8) 399 Variable 346 Variable 373 Variable 400 xA 347 xA 374 xA 401 xB 348 xB 375 xB 402 xC 349 xC 376 xC 403 xD 350 xD 377 xD 404 ___________________________________________________________________________ 3/19 ↓ FA45 FA46 FA47 ↓ FA48 ↓ Nom(1-2) 405 Nom(1-2) 432 Nom(1-2) 459 Nom(3-4) 406 Nom(3-4) 433 Nom(3-4) 460 Nom(5-6) 407 Nom(5-6) 434 Nom(5-6) 461 Nom(7-8) 408 Nom(7-8) 435 Nom(7-8) 462 Variable 409 Variable 456 Variable 463 xA 410 xA 437 xA 464 xB 411 xB 438 xB 465 xC 412 xC 439 xC 466 xD 413 xD 440 xD 467 Nom(1-2) 414 Nom(1-2) 441 Nom(1-2) 468 Nom(3-4) 415 Nom(3-4) 442 Nom(3-4) 469 Nom(5-6) 416 Nom(5-6) 443 Nom(5-6) 470 FA49 FA51 FA52 Nom(7-8) 417 Nom(7-8) 444 Nom(7-8) 471 Variable 418 Variable 445 Variable 472 xA 419 xA 446 xA 473 xB 420 xB 447 xB 474 xC 421 xC 448 xC 475 xD 422 Nom(1-2) 423 xD 449 Nom(1-2) 450 xD 476 Nom(1-2) 477 Nom(3-4) Nom(5-6) 424 Nom(3-4) 425 Nom(5-6) 451 Nom(3-4) 478 452 Nom(5-6) 479 Nom(7-8) 426 Nom(7-8) 453 Nom(7-8) 480 Variable xA 427 Variable 454 Variable 481 428 xA 455 xA 482 xB xC 429 xB 456 xB 483 430 xC 457 xC 484 xD 431 xD 458 xD 485 FA50 FA53 ___________________________________________________________________________ 3/20 Mise en œuvre de l'OFB XFUZ ↓ FA54 FA55 FA56 FA57 ↓ ↓ Nom(1-2) 486 Nom(1-2) 522 Nom(1-2) 558 Nom(3-4) 487 Nom(3-4) 523 Nom(3-4) 559 Nom(5-6) 488 Nom(5-6) 524 Nom(5-6) 560 Nom(7-8) 489 Nom(7-8) 525 Nom(7-8) 561 Variable 490 Variable 526 Variable 562 xA 491 xA 527 xA 563 xB 492 xB 528 xB 564 xC 493 xC 529 xC 565 xD 494 Nom(1-2) 495 Nom(3-4) Nom(5-6) FA58 3 xD 530 Nom(1-2) 531 496 Nom(3-4) 497 Nom(5-6) FA59 FA62 xD 566 Nom(1-2) 567 532 Nom(3-4) 568 533 Nom(5-6) 569 FA63 Nom(7-8) 498 Nom(7-8) 534 Nom(7-8) 570 Variable 499 Variable 535 Variable 571 xA 500 xA 536 xA 572 xB 501 xB 537 xB 573 xC 502 xC 538 xC 574 xD 503 xD 539 xD 575 Nom(1-2) 504 Nom(1-2) 540 Nom(3-4) 505 Nom(3-4) 541 Nom(5-6) 506 Nom(5-6) 542 FA60 Nom(7-8) 507 Nom(7-8) 543 Variable 508 Variable 544 xA 509 xA 545 xB 510 xB 546 xC 511 xC 547 xC 512 Nom(1-2) 513 xC 548 Nom(1-2) 549 Nom(3-4) 514 Nom(3-4) 550 Nom(5-6) 515 Nom(5-6) 551 Nom(7-8) 516 Nom(7-8) 552 Variable 517 Variable 553 FA61 xA 518 xA 554 xB 519 xB 555 xC 520 xC 556 xC 521 xC 557 ___________________________________________________________________________ 3/21 Tableau REG Ce tableau regroupe les paramètres relatifs aux 64 règles (0 à 63) : les 4 numéros des fonctions d’appartenance utilisées en prédicats, les 2 numéros des fonctions d’appartenance utilisées en conclusion. ↓ REG0 REG1 REG2 REG3 REG4 Préd1 0 Préd2 Préd3 ↓ Préd1 30 Préd1 60 1 Préd2 2 Préd3 31 Préd2 61 32 Préd3 62 Préd4 3 Concl1 4 Préd4 33 Préd4 63 Concl1 34 Concl1 64 Concl2 5 Concl2 35 Concl2 65 Préd1 6 Préd2 7 Préd1 36 Préd1 66 Préd2 37 Préd2 67 Préd3 Préd4 8 Préd3 38 Préd3 68 9 Préd4 39 Préd4 69 Concl1 10 Concl1 40 Concl1 70 Concl2 11 Préd1 12 Préd2 Préd3 REG5 ↓ REG6 Concl2 41 Préd1 42 13 Préd2 14 Préd3 Préd4 15 Concl1 16 Concl2 17 Préd1 18 Préd2 19 Préd3 Préd4 Concl1 REG10 REG11 Concl2 71 Préd1 72 43 Préd2 73 44 Préd3 74 Préd4 45 Préd4 75 Concl1 46 Concl1 76 Concl2 47 Concl2 77 Préd1 48 Préd1 78 Préd2 49 Préd2 79 20 Préd3 50 Préd3 80 21 Préd4 51 Préd4 81 22 Concl1 52 Concl1 82 Concl2 23 Préd1 24 Préd2 Préd3 REG7 REG8 Concl2 53 Préd1 54 25 Préd2 26 Préd3 Préd4 27 Concl1 28 Concl2 29 REG9 REG12 REG13 Concl2 83 Préd1 84 55 Préd2 85 66 Préd3 86 Préd4 57 Préd4 87 Concl1 58 Concl1 88 Concl2 59 Concl2 89 REG14 ___________________________________________________________________________ 3/22 Mise en œuvre de l'OFB XFUZ ↓ REG15 REG16 REG17 REG18 REG19 ↓ ↓ Préd1 90 Préd1 120 Préd1 150 Préd2 91 Préd2 121 Préd2 151 Préd3 92 Préd3 122 Préd3 152 Préd4 93 Préd4 123 Préd4 153 Concl1 94 Concl1 124 Concl1 154 Concl2 95 Préd1 96 Préd2 Préd3 REG20 3 Concl2 125 Préd1 126 97 Préd2 98 Préd3 Préd4 99 Concl1 Concl2 REG25 Concl2 155 Préd1 156 127 Préd2 157 128 Préd3 158 Préd4 129 Préd4 159 100 Concl1 130 Concl1 160 101 Concl2 131 Concl2 161 REG21 Préd1 102 Préd1 132 Préd1 162 Préd2 103 Préd2 133 Préd2 163 Préd3 104 Préd3 134 Préd3 164 Préd4 105 Préd4 135 Préd4 165 Concl1 106 Concl1 136 Concl1 166 Concl2 107 Préd1 108 Préd2 REG22 REG26 Concl2 137 Préd1 138 109 Préd2 Préd3 110 Préd4 111 Concl1 Concl2 REG27 Concl2 167 Préd1 168 139 Préd2 169 Préd3 140 Préd3 170 Préd4 141 Préd4 171 112 Concl1 142 Concl1 172 113 Concl2 143 Concl2 173 REG23 REG24 REG28 Préd1 114 Préd1 144 Préd1 174 Préd2 115 Préd2 145 REG29 Préd2 175 Préd3 116 Préd3 146 Préd3 176 Préd4 117 Préd4 147 Préd4 177 Concl1 118 Concl1 148 Concl1 178 Concl2 119 Concl2 149 Concl2 179 ___________________________________________________________________________ 3/23 ↓ REG30 REG31 REG32 REG33 REG34 ↓ Préd1 180 Préd1 210 Préd1 240 Préd2 181 Préd2 211 Préd2 241 Préd3 182 Préd3 212 Préd3 242 Préd4 183 Préd4 213 Préd4 243 Concl1 184 Concl1 214 Concl1 244 Concl2 185 Préd1 186 Préd2 Préd3 REG35 ↓ Concl2 215 Préd1 216 187 Préd2 188 Préd3 Préd4 189 Concl1 Concl2 REG40 Concl2 245 Préd1 246 217 Préd2 247 218 Préd3 248 Préd4 219 Préd4 249 190 Concl1 220 Concl1 250 191 Concl2 221 Concl2 251 REG36 Préd1 192 Préd1 222 Préd1 252 Préd2 193 Préd2 223 Préd2 253 Préd3 194 Préd3 224 Préd3 254 Préd4 195 Préd4 225 Préd4 255 Concl1 196 Concl1 226 Concl1 256 Concl2 197 Préd1 198 Préd2 RE37 REG41 Concl2 227 Préd1 228 199 Préd2 Préd3 200 Préd4 201 Concl1 Concl2 REG42 Concl2 257 Préd1 258 229 Préd2 259 Préd3 230 Préd3 260 Préd4 231 Préd4 261 202 Concl1 232 Concl1 262 203 Concl2 233 Concl2 263 REG38 REG39 REG43 Préd1 204 Préd1 234 Préd1 264 Préd2 205 Préd2 235 REG44 Préd2 265 Préd3 206 Préd3 236 Préd3 266 Préd4 207 Préd4 237 Préd4 267 Concl1 208 Concl1 238 Concl1 268 Concl2 209 Concl2 239 Concl2 269 ___________________________________________________________________________ 3/24 Mise en œuvre de l'OFB XFUZ ↓ REG45 REG46 REG47 REG48 REG49 Préd1 270 Préd2 ↓ REG50 Préd1 300 271 Préd2 Préd3 272 Préd4 273 Concl1 Concl2 Préd1 276 Préd2 Préd3 3 ↓ Préd1 330 301 Préd2 331 Préd3 302 Préd3 332 Préd4 303 Préd4 333 274 Concl1 304 Concl1 334 275 Concl2 305 Concl2 335 Préd1 306 Préd1 336 277 Préd2 307 Préd2 337 278 Préd3 308 Préd3 338 Préd4 279 Préd4 309 Préd4 339 Concl1 280 Concl1 310 Concl1 340 Concl2 281 Concl2 311 Concl2 341 REG51 RE52 REG55 REG56 Préd1 282 Préd1 312 Préd1 342 Préd2 283 Préd2 313 Préd2 343 Préd3 284 Préd3 314 Préd3 344 Préd4 285 Préd4 315 Préd4 345 Concl1 286 Concl1 316 Concl1 346 Concl2 287 Concl2 317 Concl2 347 Préd1 288 Préd1 318 Préd1 348 Préd2 289 Préd2 319 Préd2 349 Préd3 290 Préd3 320 Préd3 350 Préd4 291 Préd4 321 Préd4 351 Concl1 292 Concl1 322 Concl1 352 Concl2 293 Concl2 323 Concl2 353 REG53 REG54 REG57 REG58 Préd1 294 Préd1 324 Préd1 354 Préd2 295 Préd2 325 REG59 Préd2 355 Préd3 296 Préd3 326 Préd3 356 Préd4 297 Préd4 327 Préd4 357 Concl1 298 Concl1 328 Concl1 358 Concl2 299 Concl2 329 Concl2 359 ___________________________________________________________________________ 3/25 ↓ REG60 Préd1 Préd2 Préd3 Préd4 Concl1 Concl2 360 361 362 363 364 365 REG61 Préd1 Préd2 Préd3 Préd4 Concl1 Concl2 366 367 368 369 370 371 REG62 Préd1 Préd2 Préd3 Préd4 Concl1 Concl2 372 373 374 375 376 377 REG63 Préd1 Préd2 Préd3 Préd4 Concl1 Concl2 378 379 380 381 382 383 ___________________________________________________________________________ 3/26 Mise en œuvre de l'OFB XFUZ 3.5 3 Aide mémoire Description des paramètres et données internes de l’OFB XFUZ Paramètres d’entrées INP1 à INP8 (mots) Entrées prises en compte dans le calcul des inférences. En cas de forçage, ce sont les données internes I1_SIM à I8_SIM qui sont utilisées. Paramètres de sorties ERROR (bit) Bit d’erreur, monte à 1 si un bit d’erreur de STATUS est à 1. STATUS (mot) Chaque bit à 1 signale une erreur, une information ou une alarme : bit 0 à bit5 : bit 6 : bit 7 : bit 8 : bit 9 : bit 10 : bit 11 : bit 12 : bit 13 : bit 14 : bit 15 : valeur par défaut appliquée sur la sortie n° 1 à 6. aucune règle active. processeur de type incorrect. aucune fonction d’appartenance dans la base ou aucune règle dans la base. paramétrage des sorties ou variables intermédiaires incorrect : Discr < 3 ou Discr >20 ou (BorneSup - BorneInf) < 2*(Discr -1). mauvais classement des fonctions d’appartenance ou fonctions d’appartenance se référant à des variables inexistantes. abscisses des points A, B, C et D des fonctions d’appartenance mal classées, règles se référant à des fonctions d’appartenance inexistantes ou fonctions d’appartenance d’entrées indiquées en sorties de règles. sorties de deuxième inférence indiquées en entrées de règles ou variables intermédiaires indiquées en sorties de règles en deuxième inférence. deuxième inférence impossible en mode sortie singleton ou défuzzification par moyenne des maxima impossible en mode sortie singleton. non utilisé. OUT1 à OUT6 (mots) En mode AUTOMATIQUE, sorties calculées lors du calcul des inférences. En mode MANUEL, recopie des données internes O1_MAN a O6_MAN. ___________________________________________________________________________ 3/27 Données internes INIT (bit) Un front montant de ce bit lance la réinitialisation de l’OFB. MAN_AUTO (bit) = 0 mode MANUEL (par défaut) = 1 mode AUTOMATIQUE CONT_ASK (bit) = 0 mode continu = 1 mode sur demande START (bit) = 1 active le calcul des inférences (en mode sur demande une seule inférence est lancée) = 0 par défaut REFRESH (bit) Sur front montant, prise en compte des constantes internes d’initialisation. INHIB (bit) = 1 inhibe la montée du bit ERROR O1_CALC à O6_CALC (mots) Valeurs calculées des sorties, mises à jour indépendamment de MAN_AUTO. O1_MAN à O6_MAN (mots) I1_SIM à I8_SIM (mots) O1_DEF à O6_DEF (mots) Valeurs des sorties en mode MANUEL. Valeurs forcées des entrées (le forçage est activé par le mot COMMAND). Valeurs par défaut des sorties, affectées à une sortie si aucune règle active ne la calcule. T_OFB (mot) Période de l’OFB en centièmes de secondes (arrondie à un multiple de la période de la tâche dans laquelle l’OFB est programmé). MONITOR (mot) Réservé COMMAND (mot) Mot de commande (l’octet de poids faible permet d’activer le forçage des entrées). DEGRE[64] (tableau d’octets) Degrés d’activation des règles, chacun codé sur un octet. ___________________________________________________________________________ 3/28 Mise en œuvre de l'OFB XFUZ 3 Constantes internes de structure OP_CONJ (mot) Opérateur de conjugaison : 0 : MIN/MAX OP_ET (mot) Opérateur ET entre prédicats d’une règle 0 : Minimum (par défaut) 1 : Multiplication OP_IMPL (mot) Opérateur d’implication 0 : Minimum (par défaut) 1 : Multiplication OP_AGREG (mot) Opérateur d’agrégation entre conclusions 0 : Maximum OP_DEFUZ (mot) Opérateur de défuzzification 0 : Centre de gravité (par défaut) 1 : Moyenne des maxima OUT_PT (bit) Mode de calcul des inférences 0 : mode normal (par défaut) 1 : fonctions d’appartenance de sortie réduites à un point Constantes internes d’initialisation CONTASK$ (bit) Valeur initiale de CONT_ASK (=1 par défaut). T_OFB$ (mot) Valeur initiale de T_OFB (de 0 a 32767, par défaut =200). O1_DEF$ a O6_DEF$ (mots) ESV[62] (tableau de mots) FA[576] (tableau de mots) RG[384] (tableau de mots) Valeurs initiales des sorties par défaut (de -32768 a 32767, par défaut = 0 ). Contenu de la base de connaissance : Entrées, Sorties, Variables intermédiaires (par défaut = 0). Contenu de la base de connaissance : Fonctions d’Appartenance (par défaut, aucune fonction d’appartenance). Contenu de la base de connaissance : Règles (par défaut, aucune règle). Les valeurs des constantes internes d’initialisation sont prises en compte dans le calcul des inférences, lors des événements suivants : • reprise à froid, • front montant de INIT, • front montant de REFRESH. ___________________________________________________________________________ 3/29 ___________________________________________________________________________ 3/30