Vous êtes sur la page 1sur 8

TP Logique floue:

Stabilisation d’un pendule


inversé

Réalisée par :

ENNASSIRI Hamza

Année universitaire 2023-2024


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

La logique floue est un axe de recherche important qi permet de concevoir des


contrôleurs flous dans ce genre de situation. 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… ).

Dans ce travail, nous allons é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- Modèle du pendule inversé


1- Description du pendule inversé
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°.
Les différents paramètres du système sont :

m: masse du pendule
M : masse du chariot
l : demi longueur du pendule
b : frottements du pendule
F : force exercée sur le chariot
b0 : frottements de déplacement du chariot
x : position du chariot
 : l'angle du pendule
g : intensité de pesanteur
J : moment d’inertie du pendule

2- Modèle du pendule inversé

Les équations du mouvement du pendule sont déterminées par le formalisme d’Euler- Lagrange
qui est basé sur le principe de la conservation de l’énergie mécanique plutôt que sur le concept
de force, comme dans le principe de Newton. Le Lagrangien est défini commeétant la
différence entre l’énergie cinétique et l’énergie potentielle Ep du système, l’avantage de ce
formalisme réside dans l’élimination des efforts d’interaction, Il s’exprime par :

𝐿 = 𝐸C − 𝐸p
On prend comme direction positive de x le sens de gauche à droite et celui de l’angle est le
sens des aiguilles d’une montre. On a ainsi :
1 1 1 2
𝐸c = 2 𝑀𝑥2 + 2 𝑚𝑣p2 + 2𝐽𝜃

¯¯¯p̄⃗ : La vitesse du centre de gravité du pendule


𝑣
𝜃 : La vitesse angulaire du pendule
La position du centre de gravité du pendule est donnée par :
𝑟¯p⃗ = (𝑥 + 𝑙 sin 𝜃) 𝚤⃗ + 𝑙 cos 𝜃 𝚥⃗

Donc la vitesse du centre de gravité est :


𝑑¯𝑟p⃗
¯¯¯¯⃗ =
𝑣 = (𝑥 + 𝑙𝜃 cos 𝜃)𝚤⃗ − 𝑙𝜃 sin 𝜃 𝚥⃗
p 𝑑𝑡
¯¯¯¯p⃗ par son expression dans l’équation de l’énergie cinétique du pendule, on
On remplaçant 𝑣
obtient :
1 1 2
𝐸c = 2 𝑚 (𝑥 2 + 2𝑙𝑥𝜃 cos 𝜃 + 𝑙2𝜃2 ) + 2 𝐽𝜃

L'énergie potentille du centre de gravité de la barre est donnée par est:

𝐸p = 𝑚𝑔𝑙𝑐𝑜𝑠𝜃
Le lagrangien est donc:

1 1
𝐿 = 1 𝑀𝑥2 + 𝑚 (𝑥2 + 2𝑙𝑥𝜃 cos 𝜃 + 𝑙2 𝜃2 ) + 𝐽𝜃2 — 𝑚𝑔𝑙 cos 𝜃
2 2 2
En écrivant les équations de Lagrange pour le deux degrés de liberté 𝑥 𝑒𝑡 𝜃, on obtient les équations
du système pendule-chariot suivantes:

(𝑀 + 𝑚)𝑥 + 𝑏𝑥 + 𝑚𝑙𝜃 cos 𝜃 − 𝑚𝑙𝜃2 sin 𝜃 = 𝐹


{
(𝑚𝑙2 + 𝐽)𝜃 + 𝑑𝜃 + 𝑚𝑙𝑥 cos 𝜃 − 𝑚𝑔𝑙 sin 𝜃 = 0

III- Commande par logique floue


1. Réaliser un schéma Simulink traduisant les équations établies dans le paragraphe
précédent.
2. Faire la simulation du système en boucle ouverte. Conclure.
3. Réaliser le schéma Simulink du système en boucle fermée suivant:

Prendre comme variables:


Entrées = L’erreur qui est l’écart angulaire entre la sortie 𝜃(t) et la consigne (𝜃 = 0) 𝑒𝑡 𝑙a
dérivée de l’erreur (appelé derreur) qui est la différence entre l’erreur à l’instant k et
celle à l’instant (k-1).

Sortie= L'angle 𝜃 que fait le pendule avec la verticale.


Les variables linguistiques pour les grandeurs d'entrées et de sorties son:
➢ Pour les entrées: Négative (N),
Nulle (Z)
Positive (P).
➢ Pour la sortie: Négative Grand (NG)
Négative (N)
Nulle (Z)
Positive (POS)
Positive Grand (PG)
4. Définir ensuite les plages de variations en prenant:
➢ [-0.35 0.35] pour l'erreur;
➢ [-10 10] pour la dérivée de l'erreur;
➢ [-30 30] pour la commande (Force).
5. Les règles d'inférences sont définies comme suit:
▪ Si l’erreur est NEG et derreur est NEG alors force PG
▪ Si l’erreur est NEG et derreur est ZER alors force positive
▪ Si l’erreur est NEG et derreur est POS alors force NUL
▪ Si l’erreur est ZER et derreur est NEG alors force positive
▪ Si l’erreur est ZER et derreur est ZER alors force ZER
▪ Si l’erreur est ZER et derreur est POS alors force NEG
▪ Si l’erreur est POS et derreur est NEG alors force ZER
▪ Si l’erreur est POS et derreur est NUL alors force NEG
▪ Si l’erreur est POS et derreur est POS alors force NG.

6. Faire les simulations pendant une durée de 10 secondes en prenant comme position
initiale 𝜃 = 0.2 rad et en ajoutant une perturbation se forme d’impulsion à l’instant
t=5 seconde.

IV- Les réponses


1-Réalisation d’un schéma Simulink traduisant les équations établies dans le paragraphe
précédent.
la simulation du système en boucle ouverte
2-la simulation du système en boucle ouverte

La courbe représente l’évolution teta par rapport au temps du système en boucle ouverte

Time Series Plot:


6

4
data

0
0 10 20 30
Time (seconds)

3-Le schéma Simulink du système en boucle fermée


La courbe représente l’évolution teta par rapport au temps du système en boucle fermée

Time Series Plot:


0.3

0.2

data
0.1

-0.1
0 2 4 6 8 10
Time (seconds)

La déclaration des variables linguistiques pour les grandeurs d'entrées (erreur et derreur) et de sorties
(ongle teta) dans la fonction fuzzy
Les règles d'inférences sont définies comme suit:

6-Les simulations pendant une durée de 10 secondes en prenant comme position initiale 𝜃 =
0.2 rad et en ajoutant une perturbation se forme d’impulsion à l’instantt=5 seconde.

Time Series Plot:


0.3

0.2
data

0.1

-0.1
0 2 4 6 8 10
Time (seconds)

Vous aimerez peut-être aussi