51 12 501KB
Commande floue d’un pendule inversé
N.NASRI
Commande floue d’un pendule inversé
Par N.Nasri
1
www.blogmatlab.blogspot.com/
Commande floue d’un pendule inversé
N.NASRI
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.
2
www.blogmatlab.blogspot.com/
Commande floue d’un pendule inversé
N.NASRI
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 sousensembles. 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.
3
www.blogmatlab.blogspot.com/
Commande floue d’un pendule inversé
Figure1 :
Selon la logique classique
N.NASRI
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.
4
www.blogmatlab.blogspot.com/
Commande floue d’un pendule inversé
N.NASRI
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.
Base de règles
Inférences Raisonnement flou
Fuzzification
Mesures floues
Mesure
Défuzzification
Commande floue
Processus à asservir
Commande
Figure 2: Schéma d'une commande floue
5
www.blogmatlab.blogspot.com/
Commande floue d’un pendule inversé
N.NASRI
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.
6
www.blogmatlab.blogspot.com/
Commande floue d’un pendule inversé
N.NASRI
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.
7
www.blogmatlab.blogspot.com/
Commande floue d’un pendule inversé
N.NASRI
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 : cos 1 et sin 0 et en simplifiant différentes équations , on obtient les deux équations différentielles suivantes :
8
www.blogmatlab.blogspot.com/
Commande floue d’un pendule inversé
N.NASRI
6.g (mp mc) 6 .F . L(mp 4.mc) L.(mp 4.mc)
..
X
3.g.m 4 .F mp mc mp 4.mc
Figure 4 : Le pendule inversé
Avec : F : Force (commande) mc : masse du chariot (=1Kg) g : accélération gravitationnelle (=9.8 m/s) La période d’échantillonnage = 10 ms
teta : grandeur commandée mp : masse du pendule (=0.1Kg) L :Longueur du pendule(=0.5m)
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é.
9
www.blogmatlab.blogspot.com/
Commande floue d’un pendule inversé
N.NASRI
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).
10
www.blogmatlab.blogspot.com/
Commande floue d’un pendule inversé
N.NASRI
Figure 7 : Tracé des paramètres du système (X).
11
www.blogmatlab.blogspot.com/
Commande floue d’un pendule inversé
N.NASRI
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. r (t)
e (t)
y (t) e (t-1)
Contrôleur flou
Processus
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.
12
www.blogmatlab.blogspot.com/
Commande floue d’un pendule inversé
N.NASRI
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é :
teta
Dteta
F
N
Z
P
N
PG
P
Z
Z
P
Z
N
P
Z
N
NG
Figure 10 : Algorithme de contrôle.
13
www.blogmatlab.blogspot.com/
Commande floue d’un pendule inversé
NG : Négative grande. N : Négative. Z : Zéro. PG : Positive grande.
N.NASRI
P : Positive.
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 ».
14
www.blogmatlab.blogspot.com/
Commande floue d’un pendule inversé
N.NASRI
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.
15
www.blogmatlab.blogspot.com/
Commande floue d’un pendule inversé
N.NASRI
Figure 13 : L’interface graphique.
Pour une consigne nulle , on a les figures suivantes :
Figure 14 : Le signal de commande appliqué.
16
www.blogmatlab.blogspot.com/
Commande floue d’un pendule inversé
N.NASRI
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.
17
www.blogmatlab.blogspot.com/
Commande floue d’un pendule inversé
N.NASRI
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 ».
18
www.blogmatlab.blogspot.com/
Commande floue d’un pendule inversé
N.NASRI
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.
19
www.blogmatlab.blogspot.com/
Commande floue d’un pendule inversé
N.NASRI
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 ».
20
www.blogmatlab.blogspot.com/
Commande floue d’un pendule inversé
N.NASRI
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.
21
www.blogmatlab.blogspot.com/
visiter le site :
blogmatlab.blogspot.com