Schneider Electric TXTLFBFUZZYV, Logique Floue Mode d'emploi

Ajouter à Mes manuels
50 Des pages
Schneider Electric TXTLFBFUZZYV, Logique Floue Mode d'emploi | Fixfr
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

Manuels associés