VOLUME5R Asservissements Par Logique Floue

Embed Size (px)

Citation preview

  • 7/27/2019 VOLUME5R Asservissements Par Logique Floue

    1/16

    Centre de comptencesen

    automatisation industrielleet productique

    asservisSystmes

    Volume 5 R

    Asservissements par logique floue

    (Rsum)

    J.-M. Allenbach

    Ecole dIngnieurs de Genve

    Laboratoire dAutomati ue

    N 129R

    Edition 2001

  • 7/27/2019 VOLUME5R Asservissements Par Logique Floue

    2/16

  • 7/27/2019 VOLUME5R Asservissements Par Logique Floue

    3/16

    Rglage par logique floue

    J.-M. Allenbach 20.11.01 121

    CHAPITRE 12 : RGLAGE PAR LOGIQUE FLOUE

    12.1 PRINCIPE

    12.1.1 Introduction

    Si la logique floue est depuis le milieu des annes '80 la mode dans des applications

    industrielles et "grand-public" , les bases thoriques remontent dj aux travaux du professeur

    L. A. Zadeh Berkley en 1965. Si on se penche sur certains rglages non linaires appliqus

    antrieurement la publication des thories, on s'aperoit que la logique floue se pratiquait

    dj de manire intuitive et pragmatique.

    Fig. 12.1 Structure de rglage par logique floue.

    Le schma ci-dessus montre une parent du rglage par logique floue avec le rglage

    par variables d'tat. Si un rgulateur d'tat cre le signal de commande ucm par une

    combinaison linaire des variables d'tat, de la consigne et de l'intgrale de l'cart de rglage

    (chap. 10), le rgulateur flou le cre par combinaison non linaires de variables linguistiques.

    En gnral, cette combinaison repose sur une description en langage courant, qui est ensuite

    formalise sous forme de tableau double entre (ou plus) ou d'une srie de rgles. Si on

    continue la comparaison avec le rglage d'tat, le rglage flou porte en gnral sur un nombre

    plus limit de variables, souvent seulement deux dont une est l'cart de rglage.

    On peut se pencher sur la structure interne d'un rgulateur flou. La premire opration

    consiste slectionner parmi les variables d'entre celles qui sont les plus reprsentatives du

    comportement du systme, et si possible qu'on peut mesurer sans cot prohibitif.

    OCM Suucm

    FLC

    Gv

    w

    xs

  • 7/27/2019 VOLUME5R Asservissements Par Logique Floue

    4/16

    Rglage par logique floue

    J.-M. Allenbach 20.11.01 122

    Fig. 12.2 Structure interne d'un rgulateur flou

    M Matrice de slection des mesures: pour un systme rgler d'ordre ns et un choix depvariables retenues, sa dimension sera dep (ns+3). Elle contient souvent beaucoup de zros.

    N Matrice de normalisation: matrice diagonale qui permet de ramener la plage devariation de chaque variable entre -1 et 1, les units de sorties sont des [p.u.].

    Ffuz Opration de fuzzification: cration des variables linguistiques et de leurs fonction

    d'appartenance.

    Tinf Matrice d'infrence des variables linguistiques ou ensemble de rgles d'infrences .

    Rinf Mthode d'application de rgles d'infrences pour dcrire le signal de commandenormalis et sa fonction d'appartenance en fonction des valeurs instantanes des signaux

    d'entre.

    Dfuz Opration de dfuzzification pour crer le signal de commande.

    xs Vecteur des grandeurs d'tat du systme rgler

    yM Vecteur des grandeurs d'entre choisies

    yN Vecteur des variables d'entre normalises

    Facteurs d'appartenance des variables linguistiques d'entre

    yVL Fonctions d'appartenance des variables linguistiques d'entre

    uVL Fonctions d'appartenance de la variable linguistique de sortie

    urs Fonctions de sortie rsultante de la dfuzzification

    rs Facteurs d'appartenance de la variable linguistique de sortie

    ucm Signal de commande

    M N Ffuz

    Tinf

    Rinfucm

    Dfuz

    rs

    ursuVLVL

    NM

    w

    v

    xs

  • 7/27/2019 VOLUME5R Asservissements Par Logique Floue

    5/16

    Rglage par logique floue

    J.-M. Allenbach 20.11.01 123

    12.1.2 Variables linguistiques et fonctions d'appartenance.

    Chaque grandeur physiquey utilise doit tre normalise entre 1 et +1. Pour ce faire,

    on la divise par MAX(ymax, ymin). La plage de fonctionnement sera divise en 3 7 zones

    affecte chacune d'une variable linguistique.

    Dans la description analogique d'une grandeur physique, on n'a qu'une variablelinguistique dont lafonction d'appartenance peut prendre toutes les valeurs entre 1 et +1.

    Fig. 12.3 Grandeur normalise dcrite en analogique.

    Dans la description en logique classique, on a deux variables linguistiques dont les

    fonctions d'appartenance peuvent prendre les valeurs 0 ou 1, Par exemple "ngatif" et

    "positif". Ces deux variables linguistiques sont dans ce cas complmentaires, mais la

    description binaire est trs souvent trop brutale. Dans l'exemple de la temprature, les

    variables "chaud" et "froid" affectes de fonctions d'appartenance valant 0 ou 1 offrent une

    description qui manque de nuances.

    Fig. 12.4 Grandeur normalise dcrite en logique classique.

    Dans la description en logique floue, les fonctions d'appartenance des variables

    linguistiques peuvent prendre toutes les valeurs comprises entre 0 et 1.

    Fig. 12.5 Grandeur normalise dcrite en logique floue 3 variables linguistiques.

    On peut choisir plusieurs formes de fonction d'appartenance, mais les plus usuelles

    sont triangulaires, trapzodales ou gaussiennes.

    Fig. 12.6 Formes de fonction d'appartenance.

    1

    1

    +1

    +1

    yN

    Mesure

    1+1

    1

    yN

    PositifN atif

    +1

    1

    yN

    PositifN atif EZ

    1

  • 7/27/2019 VOLUME5R Asservissements Par Logique Floue

    6/16

    Rglage par logique floue

    J.-M. Allenbach 20.11.01 124

    Quelle que soit la forme choisie, il faudra prendre certaines prcautions dans la

    construction et la disposition des fonctions d'appartenance.

    On veillera, pour la variable linguistique "Environ Zro", viter un "plat" au sommet,

    susceptible d'entraner une indtermination du rglage. Ceci s'applique particulirement lavariable de sortie et la variable d'entre "cart de rglage" si elle est prsente, ou aux

    grandeurs rgle et de consigne. Pour d'autres grandeurs, le "plat" sera peut-tre justement

    souhaitable, pour introduire un domaine o celle-ci n'influence pas le rglage.

    Pour la mme raison, on veillera viter que les variables contigus "Environ Zro"

    laissent une zone ou leur fonction d'appartenance prend la valeur zro au voisinage de la

    valeur nulle de la grandeur normalise.

    On vitera un recouvrement trop important ou trop faible de deux fonctions d'appartenance

    contigus (entre 0,3 et 0,7). On vitera de mme, pour les formes simples, de permettre

    qu'une valeur de grandeur normalise puisse tre dcrite par plus de deux variables

    linguistique dont la fonction d'appartenance est non nulle. On prfrera les triangles ou trapzes aux gaussiennes ou autres fonctions compliques,

    dvoreuses d'espace mmoire et ncessitant des temps de calculs plus long lorsque le

    rgulateur est en fonction.

    Selon la valeur instantane de la grandeur physique normalise yN, on lui attribue une

    ou deux variables linguistiquesyVL, avec un poids . C'est l'opration de fuzzyfication.

    Fig. 12.7 Exemple de fonctions d'appartenance.

    Dans l'exemple de la figure 12.6, les valeurs de la grandeur normalise se dcrivent

    ainsi:

    y = , y =y =

    N VL

    VL

    N avecEZ avec

    =

    =

    0 3 0 70 3

    ,,

    (12.1)

    y = , y =N VL P avec+ =0 6 1 (12.2)

    Pour chaque cycle de calcul, la valeur instantane du signal doit tre convertie en une

    variable linguistique sur laquelle porteront les rgles d'infrence et la valeur de sa fonction

    d'appartenance qui dtermine la dfuzzyfication.

    +1

    1

    yN

    PN EZ

    1 0,3 +0,6

  • 7/27/2019 VOLUME5R Asservissements Par Logique Floue

    7/16

    Rglage par logique floue

    J.-M. Allenbach 20.11.01 125

    12.1.3 Rgles d'infrence

    Lorsqu'on a fuzzyfi toutes les grandeurs d'entre, il s'agit de dcrire le fonctionnement

    global de l'installation, en se fondant sur une approche intuitive, souvent avec l'aide du

    professionnel habitu conduire manuellement la machiner qui doit tre automatise.

    On tablit donc les rgles d'infrence qui dcrivent ce fonctionnement, soit sous laforme de tableau (ou matrice) soit sous la forme d'quations logiques.

    Pour expliquer la mthode, on s'appuie sur un exemple:

    Le chariot d'un distributeur de boissons en bote est entran par un moteur courant continu

    auquel on applique une tension ub. Cette tension est dcrite par une fuzzyfication uVL 5

    variables linguistiques. On a choisi deux grandeurs d'entre: l'cart de rglage de position du

    chariot e = w y = x1 et sa vitesse y x= 2 . Ces entres sont aussi dcrites chacune par une

    fuzzyfication 5 variables linguistiques.

    Si par exemple le chariot se trouve une grande distance ngative de la consigne

    (x1 = NG), peu prs l'arrt (x2 = EZ), on appliquera une tension leve aux bornes du

    moteur (uVL = PG). Cette description linguistique peut tre traduite par une quation logique.

    si NG et EZ alors PG( )x x uVL1 2= = = (12.3)

    On peut ainsi tablir une liste d'quations logiques qui dcrivent les diverses

    conditions de fonctionnement, la machine se trouvant dans une ou une autre des conditions:

    ces quations sont lies par un ou logique. Plutt qu'une liste d'quations, on peut aussi

    prsenter une description sous forme de matrice.

    uVL x1 = e

    NG NM EZ PM PGPG NM NG

    x y2 = PM PM EZ NM NGEZ PG PM EZ NM NGNM PG PM EZ NMNG PG PM

    Fig. 12.8 Matrice d'infrence deux variables d'entre: exemple du chariot distributeur de canettes.

    L'quation (12.3) est transcrite dans la troisime case de la premire colonne. Les cases

    vides de la matrice n'entranent aucune action, car il n'y a pas de rgle; ce n'est pas gnant, car

    ces cases correspondent le plus souvent des vnements impossibles, du moins en servicenormal. Dans la reprsentation par matrice d'infrence, c'est toujours l'oprateur et qui relie les

    conditions d'entre d'une case: si l'oprateur ou relie deux conditions d'entre, cela se traduit

    dans la matrice par une colonne et une ligne compltes.

    Dans certains cas de valeurs d'entre, plusieurs rgles peuvent tre concernes comme

    le montre l'exemple (12.1), cause du recouvrement des fonctions d'appartenance.

  • 7/27/2019 VOLUME5R Asservissements Par Logique Floue

    8/16

    Rglage par logique floue

    J.-M. Allenbach 20.11.01 126

    12.1.4 Mthodes d'infrence

    Lorsqu'on a tabli les rgles d'infrence qui dcrivent le fonctionnement, il faut

    indiquer au calculateur la procdure l'algorithme mathmatique qu'il doit employer pour

    calculer une fonction de sortie rs(urs) connaissant la valeur prsente des entres ainsi que les

    rgles d'infrence prtablies.

    On recense plusieurs mthodes, dcrites en dtail la section 12.4:

    minmax

    maxproduit

    sommeproduit

    TVFI

    gamma

    On illustre ici la mthode sommeproduit la plus usite par une exemple d'un

    systme deux entres et une sortie fuzzyfies trois variables linguistiques. Dans l'exempletudi, les conditions prsentes des entres sont les suivantes:

    x x1 0 44 0 67= = , ,et 2 (12.4)

    Deux des rgles sont concernes par ces valeurs d'entre.

    NGalors)NGouEZ(si

    EZalors)EZetPG(si

    21

    21

    ===

    ===

    VL

    VL

    uxx

    uxxou (12.5)

    Fig. 12.9 Exemple d'application de la mthode d'infrence sommeproduit deux variables d'entre

    On relve que la "somme" est en fait la "moyenne". Si les conditions d'entre sont

    telles qu'une seule rgle est concerne, la "somme" des rgles, illustre droite de la figure

  • 7/27/2019 VOLUME5R Asservissements Par Logique Floue

    9/16

    Rglage par logique floue

    J.-M. Allenbach 20.11.01 127

    12.9, n'est simplement pas applique, ou si l'on prfre, la moyenne sur une seule variable est

    la variable elle-mme.

    12.1.5 Dfuzzyfication

    La dernire tape consiste transformer la fonction d'appartenance de sortie rs(urs)

    en une valeurxcm prsente sur la grandeur de sortie. L encore, plusieurs mthodes existent,dcrites la section 12.5, dont la plus rpandue est celle du centre de gravit. La figure 12.10

    prsente une exemple de rsultat de mthode d'infrence.

    Fig. 12.10 Dfuzzyfication par la mthode du centre de gravit.

    On calcule le centre de gravit de la figure comprise entre l'axe et la fonction de sortie

    calcule par la mthode d'infrence.

    x

    u u u

    u u

    cm

    rs rs rs rs

    rs rs rs

    =

    +

    +

    ( ) d

    ( ) d

    1

    1

    1

    1(12.6)

    Lorsqu'on peut dcomposer la figure en n figures simples de surface Sk(rs, urs) dont

    le centre de gravit xk peut tre calcul facilement, pour le centre de gravit global les

    intgrales deviennent sommes.

    x

    x S

    S

    k

    n

    k

    ncm

    k k

    k

    ==

    =

    1

    1

    (12.7)

    Dans le cas d'une dfuzzyfication aprs infrence par la mthode sommeproduit avec

    m rgles, le calcul est simple. Il se base sur les surfaces Si des fonctions d'appartenance des

    variables linguistiques dfinies pour le signal de sortie, pondres par les facteurs

    d'appartenance calculs par les rgles. Le centre de gravitxi de chaque variable linguistique Sise calcule sans peine pour les formes frquentes; au besoin par exemple pour des fonctions

    xcm

    rs

    urs

    1 +1

    +1

  • 7/27/2019 VOLUME5R Asservissements Par Logique Floue

    10/16

    Rglage par logique floue

    J.-M. Allenbach 20.11.01 128

    gaussiennes le calcul du centre de gravit est fait une fois pour toute par calcul intgral; dans

    tous les cas il est fait au dbut et stock en mmoire.

    x

    x S

    S

    i

    m

    i

    mcm

    ci i i

    ci i

    ==

    =

    1

    1

    (12.8)

    Aprs la dfuzzyfication, il reste encore appliquer le facteur d'chelle ke pour obtenir

    le signal de commande ucm. Ce facteur a un rle semblable au gain des rgulateurs classiques,

    ce n'est pas simplement l'inverse de l'opration de normalisation applique aux signaux

    d'entre.

    u k xcm e cm= (12.9)

    Comme en rglage classique il y a lieu d'tre prudent avec une augmentation deu

    facteur d'chelle, afin de ne pas rendre le systme instable.

    12.1.6 Apprciation globale du rglage flou

    Grce aux logiciels proposs par plusieurs fournisseurs, la conception d'un rgulateur

    par logique floue est assez aise, de mme que son implantation sur un calculateur pour le

    rglage en temps rel. On obtient rapidement un rsultat assez bon. La difficult est de passer

    d'un rglage assez bon un rglage trs bon. En effet on ne dispose que peu d'indication sur lamarche suivre pour modifier les rgles, la fuzzyfication ou les mthodes d'infrence afin

    d'amliorer un rsultat connu.

    Le rglage par logique floue peut paratre attractif pour qui est rebut par les outils

    mathmatiques ncessaires au rglage classique ou au rglage d'tat, continus ou chantil-

    lonns, mais on se rend vite compte que cette technique exige aussi une connaissance

    approfondie de l'installation rgler, ainsi qu'une robuste exprience professionnelle. Pire, les

    trs nombreux essais ncessaires l'obtention d'un rsultat satisfaisant ne permettent pas

    d'chapper des essais en simulation, qui ncessitent le dveloppement d'un modle de

    simulation, imposant au concepteur des connaissances mathmatiques et techniques aussi

    pointues que celles auxquelles on esprait chapper.

    Toutefois, grce ses caractristique non linaires, le rgulateur par logique floue est

    intressant pour rgler des systmes qui eux aussi on un comportement non linaire.

  • 7/27/2019 VOLUME5R Asservissements Par Logique Floue

    11/16

    Asservissements par logique floue L'outilMATLAB

    Jean-Marc Allenbach EIG 12B1 2001.11.12

    12.B APPLICATION AVEC MATLAB

    12.B.1 Principe

    Le calcul en logique floue ncessite, outre la licence de base MATLAB, l'achat et

    l'installation duFuzzy Control Toolbox. Celui-ci met disposition de l'utilisateur deux outilsfondamentaux:

    Un guide de construction du rgulateur par logique floue.

    Un bloc fonctionnel intgrer dans un schma de rgulation Simulink.

    12.B.2 Conception du rgulateur

    On accde la fentre principale du FIS Editor par un instruction sur la ligne de

    commandeMATLAB:

    fuzzy

    Fig. 12.B1 Fentre principale de l'diteur de logique floue.

    On y choisit premirement le nombre d'entres depuis la barre de menu: Edit Addinput. On trouve alors sur la fentre principale du FIS Editor autant d'icnes qu'on veutde

    signaux d'entres et sorties, et une pour les rgles d'infrence. La partie infrieure permet de

  • 7/27/2019 VOLUME5R Asservissements Par Logique Floue

    12/16

    Asservissements par logique floue L'outilMATLAB

    Jean-Marc Allenbach EIG 12B2 2001.11.12

    spcifier les mthodes d'infrences. On accde alors une fentre spcifique par un double-

    clic sur l'icne du signal dont on veut spcifier les fonctions d'appartenance.

    Fig. 12.B2 Fentre de l'diteur de fonctions d'appartenance d'un signal.

    On doit y accomplir les actions suivantes, de prfrence dans l'ordre indiqu:

    Choix de la gamme de variation de chaque signal, de prfrence [1; 1], ce qui implique que

    les signaux soient d'abord normaliss.

    Choix des fonctions d'appartenance depuis la barre de menu: Edit Add MFs... . On accde

    alors une fentre qui permet de choisir le nombre de fonctions et leur type. On prfrera les

    formes simples triangle trimf et trapze trapmf peu coteuses en temps et en espace

    mmoire.

    Sur la fentre MF, on choisit le nom et la dimension de chaque fonction d'appartenance: soit

    en dplaant les points du graphique avec la souris, soit en spcifiant le vecteur dans la fentre

    params. Pour le nom, un mnmonique tel EZ pour "environ zro" vaut mieux que mf1

    mfn attribus par dfaut. On ferme ensuite chaque fentre de signal.

    De retour dans le du FIS Editor, on choisit le nom du signal de prfrence inputkattribu

    par dfaut.

  • 7/27/2019 VOLUME5R Asservissements Par Logique Floue

    13/16

    Asservissements par logique floue L'outilMATLAB

    Jean-Marc Allenbach EIG 12B3 2001.11.12

    Fig. 12.B3 Fentre de l'diteur de fonctions d'appartenance d'un signal: exemple.

    Lorsque tous les signaux sont spcifis, on ouvre l'diteur des rgles d'infrence:

    Fig. 12.B4 Fentre de l'diteur de rgles d'infrence.

  • 7/27/2019 VOLUME5R Asservissements Par Logique Floue

    14/16

    Asservissements par logique floue L'outilMATLAB

    Jean-Marc Allenbach EIG 12B4 2001.11.12

    On termine en dfinissant les mthodes pour interprter les combinaisons logiques et les

    rgles d'infrence. On recommande ici des choix qui ne soient pas trop gourmands en temps

    de calcul, en donnant des rsultats assez bons. Pour le ET logique (And method), on choisit la

    mthode produit (prod) et pour le OU logique (Or method), on choisit la mthode somme (mean).

    Pour les rgles d'infrence, on prfre la mthode somme-produit: Implication: prod etAggregation: mean. Pour la dfuzzyfication, on recommande la mthode du centre de gravit

    (centroid). On signale que la mthode somme (mean) n'est pas dans le menu, mais qu'il faut

    passer par la mthode Custom, dans laquelle on crit en toute lettre 'mean' sans oublier

    l'encadrement d'apostrophes.

    Fig. 12.B5 Fentre principale de l'diteur de logique floue: exemple complt.

    On ferme toutes les fentres secondaires de l'diteur FIS avant d'enregistrer lergulateur sur le disque en choisissant un nom dont on se souviendra facilement. Si on veut

    ensuite utiliser ce rgulateur dans un schma Simulink, il faut encore l'enregistre dans l'espace

    de travailMATLAB: Workspace.

    12.B.3 Essai en simulation

    On cre un schma Simulinkdans lequel on colle un bloc "Fuzzy Logic Controller"

    qu'on trouve dans la bote "SIMULINK Fuzzy", elle-mme place dans la bote "Blocksets &

    Toolboxes". On doit y spcifier un nom de rgulateur parmi ceux chargs prcdemment dansl'espace de travail. Ce bloc doit tre prcd de blocs gain chargs de la normalisation des

    signaux et suivi d'un gain ajustable de l'amplification du rgulateur.

  • 7/27/2019 VOLUME5R Asservissements Par Logique Floue

    15/16

    Asservissements par logique floue L'outilMATLAB

    Jean-Marc Allenbach EIG 12B5 2001.11.12

    Fig. 12.B6 Schma de rgulation par logique floue.

    Fig. 12.B7 Dtail de rgulateur par logique floue.

    On peut alors excuter une simulation.

  • 7/27/2019 VOLUME5R Asservissements Par Logique Floue

    16/16

    Asservissements par logique floue L'outilMATLAB

    Jean-Marc Allenbach EIG 12B6 2001.11.12

    0 0.5 1 1.5 2 2.5 3 3.5 4-0.6

    -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1

    1.2

    consignegrandeur reelle

    Fig. 12.B8 Exemple de rglage sur installation simule pendant 4 [s].

    12.B.4 Essai sur machine relle

    On doit disposer d'un outil qui permet de placer un bloc fonctionnel qui donne accs

    aux interfaces d'entre et sortie, par exemple le Realtime Interface dvelopp par Vetsch

    consulting.

    0 0.5 1 1.5 2 2.5 3 3.5 4-0.5

    0

    0.5

    1

    Essai. fixed step, discrete, 3 [ms]

    Fig. 12.B9 Exemple de rglage sur installation relle pendant 4 [s].