0% ont trouvé ce document utile (0 vote)
15 vues8 pages

TPFadil

Ce rapport de TP présente la modélisation et la commande d'un système de suspension électromagnétique visant à stabiliser une balle métallique en lévitation. Les méthodes utilisées incluent la modélisation non linéaire, l'analyse de stabilité, et la conception de régulateurs par retour d'état et observateurs. Les résultats montrent que la commande par retour d'état permet une stabilisation efficace du système, respectant les spécifications dynamiques.

Transféré par

mohamed.mohamedsalhi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
15 vues8 pages

TPFadil

Ce rapport de TP présente la modélisation et la commande d'un système de suspension électromagnétique visant à stabiliser une balle métallique en lévitation. Les méthodes utilisées incluent la modélisation non linéaire, l'analyse de stabilité, et la conception de régulateurs par retour d'état et observateurs. Les résultats montrent que la commande par retour d'état permet une stabilisation efficace du système, respectant les spécifications dynamiques.

Transféré par

mohamed.mohamedsalhi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Rapport de TP : Systèmes Multivariables et

Commande Optimale
Suspension Électromagnétique

Salhi Mohamed : GE-SE

19 mai 2025

Supervision du Professeur Hassan EL FADIL

1
1 Introduction

Ce TP porte sur la modélisation et la commande d'un système de suspension élec-


tromagnétique. L'objectif est de stabiliser une balle métallique en lévitation à l'aide d'un
électroaimant piloté par des lois de commande avancées (retour d'état, observateur, LQR).
Les étapes clés comprennent :
 La modélisation non linéaire et linéarisée du système,
 L'analyse de stabilité en boucle ouverte,
 La conception d'un régulateur par retour d'état,
 L'implémentation d'un observateur d'état,
 La comparaison entre placement de pôles et commande optimale.

2 Modélisation sous forme d'état

2.1 Point d'équilibre


À l'équilibre, les forces s'équilibrent :

i2eq Kea i2eq


M g = Kea =⇒ heq = .
heq Mg

Avec ieq = 7 A, Kea = 0.0001, M = 0.05 kg , et g = 9.81 m/s2 :

0.0001 × 72
heq = ≈ 0.01 m.
0.05 × 9.81

2.2 Expressions théoriques des matrices linéarisées


Les matrices A, B et C sont obtenues par linéarisation Jacobienne autour du point
d'équilibre :
 
 ∂ ḣ
∂ ḣ ∂ ḣ ∂ ḣ
∂h
 ∂ v̇
∂v
∂ v̇
∂i
∂ v̇   ∂V c
∂ v̇ 
 
A= ∂h ∂v ∂i
, B =  ∂V c
 , C= 1 0 0 .
∂ i̇ ∂ i̇ ∂ i̇ ∂ i̇
∂h ∂v ∂i eq ∂Vc eq

Avec les équations du système :

ḣ = v
Kea i2
v̇ = g −
Mh
Vc − Ri
i̇ =
L
On obtient analytiquement :
 
0 1 0
 
0
 K i2
A =  Meah2eq 0 − 2K ea ieq 
M heq 
, B = 0 .

eq
R 1
0 0 −L L

2
2.3 Expressions numériques
Avec les valeurs M = 0.05 kg , Kea = 0.0001, ieq = 7 A, heq = 0.01 m, R = 1 Ω,
L = 0.01 H :
 
0 1 0
A = 982 0 −2.80 ,
0 0 −100
   
0 0  
B = 0 = 0 , C = 1 0 0 .
  
1
0.01
100

3 Analyse du système

3.1 Dénition du système linéarisé


Le système est déni dans un script MATLAB (Script1.m) avec la commande ss :

M = 0.05; % Masse ( kg )
g = 9.81; % G r a v i t (m/ s )
Kea = 0.0001; % Coefficient m a g n t i q u e
L = 0.01; % Inductance (H )
R = 1; % R sistance ( )
i_eq = 7; % Courant d ' quilibre ( A)

%% Calcul du point d ' quilibre h_eq


h_eq = ( Kea * i_eq ^2) / ( M * g ); % 0.01 m
Vc_eq = R * i_eq ; % Tension d ' quilibre (7 V)

%% Calcul symbolique des matrices A et B


syms h v i Vc
% quations d ' tat non l i n a i r e s
dhdt = v;
dvdt = (M* g - Kea *i ^2/ h ) / M ;
didt = ( Vc - R *i) / L;

% Jacobiennes par rapport aux tats [h , v , i] et l ' e n t r e Vc


A_sym = jacobian ([ dhdt ; dvdt ; didt ], [h , v , i ]);
B_sym = jacobian ([ dhdt ; dvdt ; didt ], Vc );

% Substitution des valeurs d ' quilibre


A_val = subs ( A_sym , {h , i , Vc }, { h_eq , i_eq , Vc_eq });
B_val = subs ( B_sym , {h , i , Vc }, { h_eq , i_eq , Vc_eq });

% Conversion en matrices n u m r i q u e s
A = double ( A_val )
B = double ( B_val )
C = [1 0 0]; % Sortie = h

sys = ss (A ,B ,C ,0);

3
3.2 Pôles, zéros et stabilité
% Calcul des p l e s et z r o s
poles = pole ( sys ); % R s u l t a t : [ -100 , 44.27 , -44.27]
zeros = zero ( sys ); % R s u l t a t : [] ( aucun z r o )

Conclusion : Le système est instable en boucle ouverte à cause du pôle positif


+31.3369.

3.3 Valeurs propres vs pôles


eigenvalues = eig (A ); % Identique poles : confirmation

Les valeurs propres de A coïncident avec les pôles du système.

3.4 Fonction de transfert en BO


Hbo = tf ( sys );
−280.3
HBO (s) = s3 +100s2 −982s−9.82·104

3.5 Modèle Simulink

Figure 1  Modèle Simulink du système linéarisé boucle ouverte

Figure 2  Résultat de la simulation en boucle ouverte pour u = 0

4
Figure 3  Résultat de la simulation en boucle ouverte pour u = 7

Figure 4  Résultat de la simulation en boucle ouverte pour u = 10

3.6 Conclusion
 La divergence observée dans les réponses temporelles est directement liée au pôle
instable s1 = +31.34
 Tout écart par rapport au point d'équilibre (∆h 6= 0) entraîne une croissance
exponentielle non amortie

4 Commande par retour d'état

4.1 Matrice de commandabilité et rang


Après qu'on a charger le script1 et on ajoute le code ci-dessous :
La matrice de commandabilité C est calculée dans MATLAB avec la fonction ctrb :
C_AB = ctrb (A , B );
rang_CAB = rank ( C_AB ); % R sultat : 3

Conclusion : Le système est entièrement commandable (rang = 3).

4.2 Stabilisation par retour d'état


La commandabilité complète permet de placer librement les pôles en boucle fermée.
La stabilisation est donc possible.

4.3 Calcul du gain K


Le polynôme caractéristique désiré est :

Pdes (s) = (s + 50)(s2 + 20s + 400) = s3 + 70s2 + 1400s + 20000

Les pôles désirés sont : −50, −10 ± j17.32. Calcul de K avec acker :
poles_des = [ -50 , -10+17.32 i , -10 -17.32 i ];
K = acker (A , B , poles_des );
% R s u l t a t : K = [ -316.6058 -8.4985 -0.3]

5
4.4 Calcul du gain f
Pour un gain statique unitaire :
1
f=
C(−A + BK)−1 B

Implémentation MATLAB :
f = 1 / (C * inv (-A + B *K) * B ); % R s u l t a t : f = -71.3558

4.5 Fonction de transfert en boucle fermée


Le système bouclé a pour fonction de transfert :

Y (s)
HBF (s) = = C(sI − (A − BK))−1 B · f
V (s)

Calcul avec MATLAB :


sys_bf = ss (A - B *K , B*f , C , 0);
Hbf = tf ( sys_bf );
% R s u l t a t : Hbf = 20000 / (s ^3 + 70 s ^2 + 1400 s + 20000)

4.6 Simulations Simulink

Figure 5  Architecture Simulink avec retour d'état (u = −Kx + f · v)


Résultats pour href = 0.04 m et href = 0.1 m :

Figure 6  Réponse en boucle fermée (href = 0.04 m)

6
Figure 7  Réponse en boucle fermée (href = 0.1 m)

Figure 8  Réponse en boucle fermée (href = 0.04 m et (perturbation = 0.01m)


4.7 Conclusion
Le retour d'état permet de stabiliser ecacement le système. Les spécications dyna-
miques (temps de réponse, dépassement) sont respectées grâce au placement de pôles. Le
gain f assure un suivi précis de la consigne en régime permanent.
L'analyse des résultats de simulation révèle les propriétés clés du système en boucle
fermée :
 Suivi de consigne précis
 Avant t = 1 s : La sortie h(t) suit parfaitement href (Fig. 8)
 Temps de réponse < 0.5 s avec dépassement < 10%
 Gain statique f = 50 garantit lim h(t) = href
t→∞
 Rejet robuste des perturbations
 Perturbation à t = 1 s (0.01 m) rejetée en < 0.2 s (Fig.8)
 Stabilité assurée par :
 Pôle intégrateur dans A − BK
 Marges de gain/phase élevées (margin(Hbf))

5 Mise en ÷uvre d'un observateur

5.1 Matrice d'observabilité et rang


La matrice d'observabilité OAC est calculée via la fonction obsv dans MATLAB :
O_AC = obsv (A , C ); % Matrice d ' o b s e r v a b i l i t
rang_OAC = rank ( O_AC ); % R sultat : 3
Conclusion : Le système est observable (rang = 3), donc un observateur peut être conçu.

5.2 Construction de l'observateur


Les pôles désirés pour l'observateur sont p1 = p2 = p3 = −100. On utilise la commande
acker :
poles_obs = [ -100 , -100 , -100];
L = acker (A ', C ', poles_obs ) '; % T r a n s p o s e s pour l ' observateur
% R s u l t a t : L = [200; 1.098 e4 ; 0]

7
5.3 Modèle Simulink de l'observateur

Figure 9  Observateur de Luenberger (entrée : y = h, sortie : x̂)

Figure 10  Schéma Complet


5.4 Test de l'observateur
 Conditions initiales : x̂(0) = [0; 0; 0] (observateur) vs x(0) = [0.01; 0; 7] (système
réel).
 Résultats après 2 s de simulation :
 Convergence de ĥ vers h en 0.01 s.
 Estimation précise de v et i malgré les perturbations.

Figure 11  Estimation de la hauteur h


8

Vous aimerez peut-être aussi