You are on page 1of 22

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 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.

3 www.blogmatlab.blogspot.com/
Commande floue d’un pendule inversé N.NASRI

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.

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
Fuzzification Raisonnement flou Défuzzification

Mesures floues Commande floue

Mesure Commande
Processus à asservir

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 6.g (mp  mc)


  .F  .
L(mp  4.mc) L.(mp  4.mc)

.. 4 3.g.m
X .F  
mp  mc mp  4.mc

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é.

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)


Contrôleur flou Processus
e (t-1)

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
F
N Z P

N PG P Z
Dteta

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é N.NASRI

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 ».

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