Telechargé par Imadeddine Bouchentouf

TP2 backstepping d'un pendule ( Matlab) - Bbouchentouf Iimadeddine

publicité
Faculté de technologie – TLEMCEN
Département de Génie Electrique & Electronique
Option : Commandes Electriques
Niveau : M2
EC 941 : TP commande non linéaire
TP N° 02
La commande par
Backstepping
Groupe : G1 | S/Groupe : G12
Présenté par :
•
•
•
BOUCHENTOUF IMADEDDINE
BOUDJEMAA ABDELHAK
ELASRI MOHAMMED
Année universitaire : 2021/2022
Table des matières
1-Représentation d’état .............................................................................................. 3
2-Détermination de la commande appropriée permettant de commander le système
pour un angle désiré en θ = 0 ..................................................................................... 3
3-Traçage des trajectoires du système en boucle fermée pour une valeur initiale
proche de zéro ............................................................................................................ 6
4-Traçage des trajectoires du système en boucle fermée pour une valeur initiale
éloignée de zéro .......................................................................................................... 7
5-Comparaison des résultats avec le TP précédent .................................................... 9
6-Conclusion : .......................................................................................................... 10
Soit l’équation dynamique d’un pendule :
Avec
Objectif :
Stabilisation de pendule autour d’une position angulaire θ = 0.
1- Représentation d’état
On écrit le système sous forme d'état
2- Détermination de la commande appropriée permettant de commander le
système pour un angle désiré en θ = 0
• Etape1 :
La fonction de Lyapunov
• Etape2 :
u= -m.l².x1+m.g.l.sin(x1) - k.k1.l².x1 - k1.m.l².e2+k1².m.l².x1 - k2.e2
3- Traçage des trajectoires du système en boucle fermée pour une valeur
initiale proche de zéro
▪ On choisit k1= 2, k2= 5 , t= 3.5s
Scripte Matlab
1- La fonction :
function dx = pendule (t,x)
g = 9.8;
l=1;
m=0.125;
k=0.025;
k1=2;
k2=5;
x2_ref=-k1*x(1);
e2=x(2)-x2_ref;
u=-m*l^2*x(1)+m*g*l*sin(x(1))k*k1*l^2*x(1)k1*m*l^2*e2+k1^2*m*l^2*x(1)-k2*e2;
dx=[x(2);-g/l*(sin(x(1)))-k/m*x(2)+1/(m*l^2)*u];
end
2- Le programme principal :
clear all
clc
tspan= [0 3.5];
y0 = [1 4];
[t,y] = ode45('pendule',tspan, y0);
plot(t,y(:,1))
hold on
plot(t,y(:,2))
grid on
▪ Résultat obtenu
# Commentaires :
▪ Le pendule oscille une fois mais le Backstepping a obligé le pendule à stabiliser vers le 0
rapidement
▪ Le temps de réponse pour ces valeurs de k1 et k2 est petit ( T= 2.5s)
▪ La valeur minimale de l’oscillation de pendule est proche de -2 ( l’erreur )
4- Traçage des trajectoires du système en boucle fermée pour une valeur
initiale éloignée de zéro
▪ On choisit k1= 80 , k2= 110 , t= 0.1s
Scripte Matlab
1- La fonction :
function dx = pendule (t,x)
g = 9.8;
l=1;
m=0.125;
k=0.025;
k1=80;
k2=110;
x2_ref=-k1*x(1);
e2=x(2)-x2_ref;
u=-m*l^2*x(1)+m*g*l*sin(x(1))k*k1*l^2*x(1)k1*m*l^2*e2+k1^2*m*l^2*x(1)-k2*e2;
dx=[x(2);-g/l*(sin(x(1)))-k/m*x(2)+1/(m*l^2)*u];
end
2- Le programme principal :
clear all
clc
tspan= [0 0.1];
y0 = [1 4];
[t,y] = ode45('pendule',tspan, y0);
plot(t,y(:,1))
hold on
plot(t,y(:,2))
grid on
▪ Résultat obtenu
# Commentaires :
▪ Le pendule oscille une fois mais le Backstepping a obligé le pendule à stabiliser vers le 0
très rapidement
▪ Le temps de réponse pour ces valeurs de k1 et k2 est très petit ( T= 0.08s) donc le
backstepping dans ce cas est tes rapide
▪ La valeur minimale de l’oscillation de pendule (l’erreur ) est proche de -65 (un grand
pique)
5- Comparaison des résultats avec le TP précédent
Dans le TP précédent on a fait la stabilisation d’un système non linéaire avec la méthode de
linéarisation et dans ce TP on fait la même chose mais avec une autre méthode qui est le
Backstepping
Donc lorsque on compare on trouve que me principe de ces méthode est différent mais le
résultats sont presque les même ( système stable a la fin ) sauf que le backstepping et plus rapide
que la méthode de linéarisation
6- Conclusion :
La commande backstepping permet de stabiliser les systèmes non-linéaires
Le temps de réponse pour cette méthode dépend des valeurs des gains K1 et K2
Si ses valeurs sont grandes donc le temps de réponse sera petit et on va avoir une grande pique
de l’oscillation par contre s’ils sont petits le temps de stabilisation sera grand mais on avoir un
petit pique de l’oscillation
Dons les valeurs des gain K1 et K2 influent sur le temps de réponse ainsi que l’erreur
Pour éviter d’avoir un pique d’erreur grande en réduit les valeurs de gains k1 et k2
Téléchargement