22
Commande floue d’un pendule inversé N.NASRI 1 www.blogmatlab.blogspot.com / Commande floue d’un pendule inversé Par N.Nasri

Commande__floue

Embed Size (px)

DESCRIPTION

Commande floue : commande d'un pendule inversé Réalisé par N.NASRIhttp://blogmatlab.blogspot.com/

Citation preview

Page 1: Commande__floue

Commande floue d’un pendule inversé N.NASRI

1 www.blogmatlab.blogspot.com/

Commande floue d’un pendule inversé

Par N.Nasri

Page 2: Commande__floue

Commande floue d’un pendule inversé N.NASRI

2 www.blogmatlab.blogspot.com/

Introduction :

Les problèmes du monde physique doivent tenir compte des imprécisions, la logique floue offre cette opportunité, car selon Zadah père de cette discipline, un élément peut plus au moins appartenir à un ensemble donnée (ie : avec un certain degré d’appartenance). Les imprécisions et les incertitudes peuvent ainsi être modélisées, et le raisonnement acquiert une flexibilité que la logique classique ne permettait pas.

La logique floue s’applique désormais dans plusieurs domaines : automatisation, instrumentation, traitement d’information …etc.

Page 3: Commande__floue

Commande floue d’un pendule inversé N.NASRI

3 www.blogmatlab.blogspot.com/

Chapitre I :

La commande par logique floue. I- Introduction :

De nos jours, la logique floue est un axe de recherche important sur lequel se focalisent de nombreuses recherches. Des applications grand public sont déjà disponibles (appareils photos, machines à laver, fours à micro-onde, …etc..), mais aussi industrielles (commande de processus complexes liés à l’énergie, à la transformation de la matière, à la robotique, … etc… ). Les bases théoriques de la logique floue ont été formulées en 1965 par le professeur Lotfi A. Zadeh, de l’Université de Berkeley en Californie. Il a introduit la notion de sous-ensemble flou pour fournir un moyen de représentation des connaissances vagues ou imprécises. II- Logique floue ou théorie des possibilités :

La logique floue permet de définir des sous-ensembles, en introduisant la

possibilité pour une valeur d’appartenir plus ou moins à chacun de ces sous-ensembles.

Dans le cadre de la logique classique, une proposition est soit vraie, soit fausse (1 ou 0). Cependant, le raisonnement humain s’appuie fréquemment sur des connaissances ou des données incertaines ou imprécises. Exemple : Une personne placée dans une pièce dont la température est soit de 19.95 degrés soit de 20.05 degrés, ne fera certainement pas de distinction entre ces deux valeurs. Cette personne sera pourtant capable de dire si la pièce est «froide» ou «chaude», sans pour cela utiliser de température limite ni de mesure précise.

Page 4: Commande__floue

Commande floue d’un pendule inversé N.NASRI

4 www.blogmatlab.blogspot.com/

Figure1 : Selon la logique classique Selon la logique floue

II- 1- Raisonnement en logique floue :

Il est possible de généraliser les méthodes de raisonnement en logique classique lorsqu’on dispose de connaissances incertaines ou imprécises. Pour qu’il soit possible de raisonner simplement sur un problème, il faut tout d’abord spécifier clairement les connaissances disponibles. II- 2- Variables linguistiques :

Les variables linguistiques permettent de décrire dans un cadre très général la connaissance acquise sur une variable, même lorsqu’elle est vague ou imprécise. II- 3- Règles floues :

Les règles floues permettent de déduire des connaissances concernant l’état du système en fonction des qualifications linguistiques fournies par l’étape de fuzzification. Ces connaissances sont également des qualifications linguistiques. Habituellement, les règles floues sont déduites des expériences acquises par les opérateurs ou les experts. Ces connaissances sont traduites en règles simples pouvant être utilisées dans un processus d’inférence floue. Mais il est possible de construire une base de règles floues grâce à des méthodes d’apprentissage, sans avoir nécessairement besoin d’un expert humain. III- Commande floue :

De façon générale, un système de commande a pour objectif de piloter l’entrée d’un processus afin d’obtenir un fonctionnement correct de ce dernier. Lorsqu’on dispose d’un modèle plus ou moins précis du système à commander, on peut utiliser un contrôleur de structure standard, dont les paramètres seront évalués à partir du modèle. Malheureusement, lorsque le système est difficilement modélisable, la conception du contrôleur peut s’avérer très complexe, sinon impossible.

Page 5: Commande__floue

Commande floue d’un pendule inversé N.NASRI

5 www.blogmatlab.blogspot.com/

Lorsqu’un opérateur humain commande manuellement un système, les actions qu’il réalise sont dictées par une connaissance subjective du fonctionnement de ce système.

Ce principe est à la base de la commande floue. La mesure réalisée sur le système est prise en compte par l’intermédiaire d’une variable linguistique, qui est issue d’une analyse par un expert humain. Ensuite, l’action à réaliser est déduite à la fois d’un ensemble de règles de commande et de l’état du système, qualifié par la variable linguistique. Enfin, la commande finale du système est créée en utilisant les conclusions de la déduction. Un contrôleur flou comporte les différents éléments suivants :

Une base de connaissances : «base de règles linguistiques de commande». Un sous-système réalisant un raisonnement en utilisant des méthodes

issues de la logique floue. (L’inférence floue).

Un sous-système d’interface avec le non flou, qui fournit la commande envoyée au système.

Figure 2: Schéma d'une commande floue

Fuzzification Défuzzification Inférences

Raisonnement flou

Processus à asservir

Base de règles

Commande Mesure

Commande floue Mesures floues

Page 6: Commande__floue

Commande floue d’un pendule inversé N.NASRI

6 www.blogmatlab.blogspot.com/

III- 1- Fuzzification :

La fuzzification est réalisée dans l’interface d’entrée du contrôleur flou. Durant cette phase, les informations issues du système sont tout d’abord normalisées. Ensuite, les données normalisées sont transformées en qualifications linguistiques, en utilisant des règles sémantiques définies par un expert. Durant la phase de normalisation, chaque mesure issue du système est modifiée pour fournir une valeur appartenant à un univers du discours relativement simple. III- 2- Inférence floue :

Les méthodes d’inférence, utilisées habituellement en logique standard, peuvent être généralisées dans le cadre de la logique floue pour permettre de raisonner lorsque les règles sont connues de façon imparfaite. Mais en général, on utilise les inférences floues définies par Mamdani et Sugeno,

deux scientifiques qui y sont fortement intéressés à la logique floue. Exemple :

Règle 1 : Si (X est A1) ; alors (Y est B1) III- 3- Défuzzification :

Les méthodes d’inférence fournissent un résultat qui est une fonction d’appartenance. Or, la sortie du contrôleur est en général une grandeur continue, (ie : valeur numérique) prenant sa valeur dans un intervalle. La défuzzification est le traitement qui permet de définir une correspondance entre le résultat de l’inférence et la grandeur continue fournie en sortie. IV- Conclusion :

La logique floue permet de tenir compte à la fois des connaissances d’un expert humain et de l’incertitude et de l’imprécision des données traitées par le contrôleur.

Page 7: Commande__floue

Commande floue d’un pendule inversé N.NASRI

7 www.blogmatlab.blogspot.com/

Les variables linguistiques permettent de traiter ces deux informations initialement différentes à l’aide d’un formalisme unique. Pourtant, la conception d’un contrôleur flou n’est pas toujours chose aisée. En fait, le fonctionnement d’un contrôleur flou dépend d’un nombre important de paramètres (fonctions d’appartenance, règles floues, règles d’inférence, défuzzification) qu’il faut manipuler lors de la conception.

Page 8: Commande__floue

Commande floue d’un pendule inversé N.NASRI

8 www.blogmatlab.blogspot.com/

Chapitre II :

Le modèle du pendule inversé. I- Introduction : On va étudier un processus de commande floue permettant de maintenir en position verticale un pendule inversé. On mesure la vitesse angulaire ainsi que l’angle d’inclinaison, et on calcule à chaque instant la force devant être appliquée pour maintenir le pendule dans la position verticale.

II- Principe :

Le pendule inversé étudié est composé d’un chariot mobile en translation sur un axe horizontal, supportant un pendule. Le pendule fixé sur le chariot est libre en rotation. Il admet un angle de 360°.

Figure 3 : Les différents états possibles du pendule inversé

II- 1- Le modèle du pendule inversé :

Après linéarisation du modèle autour du point du fonctionnement 0 , qui correspond à la position verticale du pendule.

c.à.d : 1cos et 0sin et en simplifiant différentes équations , on obtient les deux équations différentielles suivantes :

Page 9: Commande__floue

Commande floue d’un pendule inversé N.NASRI

9 www.blogmatlab.blogspot.com/

mcmp

mgF

mcmpX

.4

..3.

4..

Figure 4 : Le pendule inversé

Avec : F : Force (commande) teta : grandeur commandée mc : masse du chariot (=1Kg) mp : masse du pendule (=0.1Kg) g : accélération gravitationnelle (=9.8 m/s) L :Longueur du pendule(=0.5m) La période d’échantillonnage = 10 ms II- 2- La représentation d’état du modèle discrétisé : La représentation d’état sera donc :

Le schéma bloc suivant est réalisé sous Simulink , afin d’obtenir la représentation d’état du système étudié.

.).4.(

)(.6.

).4(

6

mcmpL

mcmpgF

mcmpL

Page 10: Commande__floue

Commande floue d’un pendule inversé N.NASRI

10 www.blogmatlab.blogspot.com/

Figure 5 : Le schéma bloc du système.

Les paramètres obtenus sont les comme suit :

II- 3- Tracé des paramètres du système : Le test du modèle a permis de tracer le graphe de « teta » et de « x ».

Figure 6 : Tracé des paramètres du système (teta, dteta).

Page 11: Commande__floue

Commande floue d’un pendule inversé N.NASRI

11 www.blogmatlab.blogspot.com/

Figure 7 : Tracé des paramètres du système (X).

Page 12: Commande__floue

Commande floue d’un pendule inversé N.NASRI

12 www.blogmatlab.blogspot.com/

Chapitre III :

Le contrôleur flou.

I- Introduction :

L’objectif est d’asservir l’angle tout en maintenant le pendule dans sa position verticale. ie : on a considéré qu’un seul degré de liberté selon .

II- Schéma d'une commande floue :

La mise en oeuvre d'une commande floue fait apparaître trois grands modules. Le premier module traite les entrées du système. On définit tout d'abord un univers de discours, un partitionnement de cet univers en classes pour chaque entrée, et des fonctions d'appartenance pour chacune de ces entrées.

Figure 8 : Schéma d’un contrôleur flou

L’erreur (appelé teta dans ce travail) est l’écart angulaire entre le signal de sortie Y(t) et le signal de consigne r(t). La variation de l’erreur (appelé dteta dans ce travail) est la différence entre l’erreur à l’instant k et celle à l’instant (k-1). III- Principe de calcul de la commande : le calcul passe par trois étapes. III- 1-La fuzzification :

La fuzzification, consiste à attribuer à la valeur réelle de chaque entrée, sa fonction d'appartenance à chacune des classes préalablement définies, donc à transformer l'entrée réelle en un sous ensemble floue.

r (t)

Contrôleur flou

Processus e (t-1)

e (t) y (t)

Page 13: Commande__floue

Commande floue d’un pendule inversé N.NASRI

13 www.blogmatlab.blogspot.com/

Forme des fonctions d’appartenance : On a choisi des fonctions d’appartenance triangulaire.

Figure 9 : Les deux entrées « teta » et « dteta » .

On a défini que la variation maximale de l’angle est de 10° en valeur absolue. III- 2-L’inférence floue :

La seconde étape consiste en l'application des règles floues. Opération réalisée dans le moteur d'inférence qui permet le calcul, tout en suivant les régles définies dans la table de la figure 10 .

Algorithme de contrôle du pendule inversé :

F teta

N Z P

Dte

ta N PG P Z

Z P Z N

P Z N NG

Figure 10 : Algorithme de contrôle.

Page 14: Commande__floue

Commande floue d’un pendule inversé N.NASRI

14 www.blogmatlab.blogspot.com/

NG : Négative grande. N : Négative. Z : Zéro. P : Positive. PG : Positive grande.

III- 3- Les règles floues : D’après l’algorithme, on aura les règles floues suivantes :

1. If (teta is N) and (dteta is N) then (F is PG) (1) 2. If (teta is N) and (dteta is Z) then (F is P) (1) 3. If (teta is N) and (dteta is P) then (F is Z) (1) 4. If (teta is Z) and (dteta is N) then (F is P) (1) 5. If (teta is Z) and (dteta is Z) then (F is Z) (1) 6. If (teta is Z) and (dteta is P) then (F is N) (1) 7. If (teta is P) and (dteta is N) then (F is Z) (1) 8. If (teta is P) and (dteta is Z) then (F is N) (1) 9. If (teta is P) and (dteta is P) then (F is NG) (1)

III- 4- La défuzzification :

L'étape de défuzzification qui est la transformation inverse de la première étape, permet de passer d'un degré d'appartenance d'une commande à la détermination de la valeur à donner à cette commande. ( la méthode choisie est celle du centre de gravité).

La sortie F :

Figure 11 : La sortie « F ».

Page 15: Commande__floue

Commande floue d’un pendule inversé N.NASRI

15 www.blogmatlab.blogspot.com/

La commande floue doit donner une solution numérique pour être exploitable.

Exemple de défuzzification : Dans notre cas pour : teta=10° et dteta=4 °/s F= -2.95 N. On le vérifie avec Rule viewer de Matlab.

Figure 12 : Rule viewer de Matlab .

IV- Les résultats de la simulation : La simulation est réalisé sous Matlab 7, l’ensemble des programmes sont organisés sous forme d’interface. On accède en tapant « pendule_flou » dans l’espace de travail.

Page 16: Commande__floue

Commande floue d’un pendule inversé N.NASRI

16 www.blogmatlab.blogspot.com/

Figure 13 : L’interface graphique.

Pour une consigne nulle , on a les figures suivantes :

Figure 14 : Le signal de commande appliqué.

Page 17: Commande__floue

Commande floue d’un pendule inversé N.NASRI

17 www.blogmatlab.blogspot.com/

Figure 15 : Le signal « teta » et « dteta » . Commentaire :

Il est clairement apparent , que pour une consigne nulle : teta et dteta sont

pratiquement nulles. La figure suivante montre la réponse du contrôleur flou, qui est aussi nulle.

Figure 16 : La sortie du contrôleur flou.

Le contrôleur flou génère une commande nulle, du fait que l’erreur est nulle.

Page 18: Commande__floue

Commande floue d’un pendule inversé N.NASRI

18 www.blogmatlab.blogspot.com/

Pour un signal de consigne représenté comme suit :

Figure 17 : le signal de consigne (en bleu) Et le signal de sortie (en rouge).

Commentaire :

La sortie suit bien la consigne qui varie dans le temps. On remarque de légers dépassements 130 et 230 environ.

Le signal de consigne appliqué donne les résultats suivants :

Figure 18 : Le signal « teta ».

Page 19: Commande__floue

Commande floue d’un pendule inversé N.NASRI

19 www.blogmatlab.blogspot.com/

Figure 19 : Le signal « dteta ». On constate que les déviations sont inférieures à 10° en valeur absolue, tel que défini au départ.

Figure 20 : La sortie du contrôleur flou. Chaque impulsion dans ce signal représente la force à appliquer pour compenser la déviation que subit le pendule.

Page 20: Commande__floue

Commande floue d’un pendule inversé N.NASRI

20 www.blogmatlab.blogspot.com/

Comparaison :

Figure 21 : Variation de la sortie du contrôleur flou avec « teta ». Commentaire : On remarque que le contrôleur réagit en fonction des variations de « teta ».

Page 21: Commande__floue

Commande floue d’un pendule inversé N.NASRI

21 www.blogmatlab.blogspot.com/

Conclusion :

Parmi les points forts et les avantages de la commande floue, Les variables

linguistiques. Ces dernières sont bien adaptées à la traduction du raisonnement qualitatif humain. Le fait d'utiliser des prédicats flous permet d'exprimer des situations graduelles. La commande floue s'est surtout montrée robuste par sa flexibilité : adaptation facile à des domaines dont on ne possède pas de modèle mathématique. Ce qui la rend applicable à des systèmes complexes. Mais aussi vis-à-vis des incertitudes. Cependant, la commande floue est limitée quand le système est assez complexe (ie : lorsqu’on a un nombre élevé de règles floues). Sans négliger que les techniques de réglage sont essentiellement empiriques. Et la dépendance de l’expertise reste toujours consistante malgré tout le développement technologique connu.

Page 22: Commande__floue

blogmatlab.blogspot.com

visiter le site :