Vous êtes sur la page 1sur 31

On considère le robot manipulateur à 2 degrés de liberté de la -figure 1- où 𝜏1 et 𝜏2 sont les couples

de commande.

-Figure 1-

On va partager ce TP en trois parties :

I. Partie 1 : Modélisation du robot


Dans cette partie on va donner le model dynamique du bras on se basant sur le formalisme
de Lagrange puis on posera sa représentation d’état :

𝜃1
𝑋 = 𝑓 𝑋, 𝑈 𝜃1 𝜏1 𝜃1
; avec 𝑋= , 𝑈= 𝜏 ,𝑌 = .
𝑌 = 𝑔(𝑋, 𝑈) 𝜃2 2 𝜃2
𝜃2

En prenant : 𝑚1 = 1 𝑘𝑔 , 𝑚2 = 0.5 𝑘𝑔 , 𝑙1 = 0.5 𝑚 , 𝑙2 = 0.5 𝑚 , 𝑔 = 9.81 𝑚/𝑠 2 .

II. Partie 2 : cette partie se divise en trois étapes :


1. Linéarisation : dans cette étape on va linéariser le model autour d’un point de
fonctionnement qu’on choisira arbitrairement puis on étudiera ces propriétés :
 Stabilité.
 Commandabilité.
 Observabilité.
2. Synthèse de la commande RE+Precompensateur : dans cette étape on va développer
une commande stabilisante par retour d’état plus précompensateur puis on
étudiera ses propriétés.
3. Synthese de le commande RE+action intégrale : dans cette étapes on va développer
une commande stabilisante par retour d’état plus action intégrale puis on étudiera
ses propriétés.
III. Partie 3 : dans cette partie on va appliquer les commande développées dans la deuxième
partie au robot non linéaire puis on va analyser les résultats.
I. Partie 1 : Modélisation du robot
Pour la modélisation on va utiliser les équations de Lagrange suivantes :

d dL dL
( )  Fqi 𝑖 = 1…𝑛 ;
dt dqi dqi

𝑛 : Le degré de liberté du system.


𝑞 : La variable généralisé.
𝐹𝑞 𝑖 : La force généralisé de 𝑞𝑖 .
𝐿 : Le Lagrangien.

Dans notre cas :


Les variables généralisées sont : 𝜃1 , 𝜃2
𝐹𝜃1 = 𝜏1 , 𝐹𝜃2 = 𝜏2
𝐿 =𝑇−𝑈 𝑇 : L’énergie cinétique du système.
𝑈 : L’énergie potentielle du système.

Calcule de Lagrangien :
a) L’énergie cinétique du bras : le bras robotique est composé de deux solide 𝑆1 et 𝑆2 d’où
l’énergie cinétique du système est le somme des énergies cinétique des deux solides
𝑇 = 𝑇1 + 𝑇2 . pour calculer 𝑇1 et 𝑇2 on pose les repères comme le montre la -figure 2- .

Figure 2
L’énergie cinétique de (S1) :

2𝑇1 = 𝒱1 𝐺1 . 𝒞1 𝐺1

𝒱1 𝐺1 : Torseur cinématique de (𝑆1 ) au centre de gravité 𝐺1 .


𝒞1 𝐺1 : Torseur cinétique de (𝑆1 ) au centre de gravité 𝐺1 .

𝛺(𝑆1 𝑅)
 𝒱1 𝐺1 =
𝑉(𝐺1 𝑅)

𝛺(𝑆1 𝑅) = 𝜃1 𝑘1

𝑑 𝑙1
𝑉(𝐺1 𝑅) = 𝑖
𝑑𝑡 2 1

𝑙1
𝑉(𝐺1 𝑅) = 2
𝜃1 𝑗1

𝑚1 . 𝑉(𝐺1 𝑅)
 𝒞1 𝐺1 =
𝜎𝐺1

𝜎𝐺1 = 𝐼𝐺1 𝑆1 . 𝛺(𝑆1 𝑅)

1
𝜎𝐺1 = 𝐼𝐺1 𝑆1 . 𝜃1 𝑘1 ; 𝐼𝐺1 𝑆1 = 12 𝑚1 . 𝑙1 2

Finalement :

1 2
𝑇1 = 6 𝑚1 𝑙1 2 𝜃1

L’énergie cinétique de (S2) : On va utiliser le théorème de Koenigns qui permet d’écrire la


relation suivante :

2
2𝑇(𝑆2 𝑅) = 2𝑇(𝑆2 𝑅𝐺2 ) + 𝑚2 𝑉(𝐺 ∈ 𝑅𝐺2 𝑅 )

2𝑇(𝑆2 𝑅𝐺2 ) = 𝒱2 𝐺2 . 𝒞2 𝐺2

𝛺(𝑆2 𝑅𝐺2 ) = (𝜃1 + 𝜃2 ) 𝑘2

𝑉(𝐺2 𝑅𝐺2 ) = 0
1
Donc : 2𝑇(𝑆2 𝑅𝐺2 ) = 𝑚 𝑙 2 (𝜃1 + 𝜃2 ) 2
12 2 2

𝑑 𝑙2
𝑉(𝐺 ∈ 𝑅𝐺2 𝑅 ) = 𝑑𝑡 ( 𝑙1 𝑖1 + 2
𝑖2 )

𝑙2
𝑉(𝐺 ∈ 𝑅𝐺2 𝑅 ) = 𝑙1 𝜃1 𝑗1 + 2
(𝜃1 + 𝜃2 ) 𝑗2

𝑗2 = − sin 𝜃2 𝑖1 + cos 𝜃2 𝑗1

𝑙 𝑙2
Ainsi : 𝑉(𝐺 ∈ 𝑅𝐺2 𝑅 ) = − 22 𝜃2 sin 𝜃2 𝑖1 + (𝑙1 𝜃1 + 2 2
𝜃 cos 𝜃2 ) 𝑗1

On peut donc finalement écrire :

𝑚2 𝑙2 2 2 𝑚2 2 2 𝑚2 2 𝑚2 2 𝑚2
𝑇2 = 𝑙1 2 + 𝜃1 + 𝑙2 𝜃2 + 𝑙2 𝜃1 𝜃2 + 𝑙1 𝑙2 𝜃1 cos θ2 + 𝑙 𝑙 𝜃 𝜃 cos⁡
(𝜃2 )
2 3 6 3 2 2 12 1 2

D’où :

1 𝑚2 𝑙2 2 2 𝑚2 2 2 𝑚2 2 𝑚2 2 𝑚2
𝑇= 𝑚1 𝑙1 2 + 𝑙1 2 + 𝜃1 + 𝑙 𝜃 + 𝑙 𝜃𝜃 + 𝑙 𝑙 𝜃 cos θ2 + 𝑙 𝑙 𝜃 𝜃 cos⁡
(𝜃2 )
6 2 3 6 2 2 3 2 1 2 2 12 1 2 12 1 2

b) L’énergie potentielle du bras : la seule force qui dérive d’un potentiel dans le bras est le
champ de la pesanteur 𝑔 , ainsi : (voir -figure 3-)

𝑚 1 𝑔𝑙 1
 Pour (𝑆1 ) : 𝑈1 = − sin⁡
(𝜃1 )
2
𝑙2
 Pour (𝑆2 ) : 𝑈2 = −𝑚2 𝑔 𝑙1 sin 𝜃1 + 2
sin⁡
(𝜃1 + 𝜃2 )

-Figure 3-
Ainsi :

𝑈 = 𝑈1 + 𝑈2

𝑚1 𝑚2 𝑔𝑙2
𝑈 = − 𝑔𝑙1 + 𝑚2 sin 𝜃1 + sin⁡
(𝜃1 + 𝜃2 )
2 2

Le Lagrangien :

𝐿 = 𝑇−𝑈

1 𝑚2 𝑙2 2 2 𝑚2 2 2 𝑚2 2 𝑚2 2 𝑚2
𝐿= 𝑚1 𝑙1 2 + 𝑙1 2 + 𝜃1 + 𝑙 𝜃 + 𝑙 𝜃𝜃 + 𝑙 𝑙 𝜃 cos θ2 + 𝑙 𝑙 𝜃 𝜃 cos 𝜃2
6 2 3 6 2 2 3 2 1 2 2 12 1 2 12 1 2
𝑚1 𝑚2 𝑔𝑙2
+ 𝑔𝑙1 + 𝑚2 sin 𝜃1 + sin⁡
(𝜃1 + 𝜃2 )
2 2

Les équations de Lagrange :

𝑑 𝑑𝐿 𝑑𝐿
− = 𝜏1
𝑑𝑡 𝑑𝜃1 𝑑𝜃1

𝑑 𝑑𝐿 𝑑𝐿
− = 𝜏2
𝑑𝑡 𝑑𝜃2 𝑑𝜃2

𝑑𝐿 1 𝑙2 2 𝑚2 2 𝑚2
 = 𝑚 𝑙 2 + 𝑚2 𝑙1 2 + 𝜃1 + 𝑙 𝜃 + 𝑚2 𝑙1 𝑙2 𝜃1 cos 𝜃2 + 𝑙 𝑙 𝜃 cos⁡
(𝜃2 )
𝑑𝜃1 3 1 1 3 3 2 2 2 1 2 2

𝑑 𝑑𝐿 1 𝑙2 2 𝑚2 2 𝑚2
= 𝑚1 𝑙1 2 + 𝑚2 𝑙1 2 + 𝜃1 + 𝑙2 𝜃2 + 𝑚2 𝑙1 𝑙2 𝜃1 cos 𝜃2 + 𝑙 𝑙 𝜃 cos 𝜃2
𝑑𝑡 𝑑𝜃1 3 3 3 2 12 2

𝑚2 2
− 𝑚2 𝑙1 𝑙2 𝜃1 𝜃2 sin 𝜃2 − 𝑙 𝑙 𝜃 sin⁡
2 1 2 2
(𝜃2 )

𝑑𝐿 𝑚1 𝑚2 𝑔𝑙2
= 𝑔𝑙1 + 𝑚2 cos 𝜃1 + ⁡cos(𝜃1 + 𝜃2 )
𝑑𝜃1 2 2
Finalement la première équation de Lagrange :

1 𝑙2 2 𝑚2 2 𝑚2
𝑚1 𝑙1 2 + 𝑚2 𝑙1 2 + 𝜃1 + 𝑙2 𝜃2 + 𝑚2 𝑙1 𝑙2 𝜃1 cos 𝜃2 + 𝑙 𝑙 𝜃 cos 𝜃2
3 3 3 2 12 2
𝑚2 2 𝑚1 𝑚2 𝑔𝑙2
− 𝑚2 𝑙1 𝑙2 𝜃1 𝜃2 sin 𝜃2 − 𝑙 𝑙 𝜃 sin 𝜃2 − 𝑔𝑙1 + 𝑚2 cos 𝜃1 + ⁡cos(𝜃1 + 𝜃2 ) = 𝜏1
2 12 2 2 2

𝑑𝐿 𝑚2 2 𝑚2 2 𝑚2
 𝑑𝜃2
= 𝑙 𝜃
3 2 2
+ 𝑙 𝜃
3 2 1
+ 𝑙 𝑙 𝜃 cos⁡
2 1 2 1
(𝜃2 )

𝑑 𝑑𝐿 𝑚2 2 𝑚2 2 𝑚2 𝑚2
= 𝑙2 𝜃1 + 𝑙2 𝜃2 + 𝑙1 𝑙2 𝜃1 cos 𝜃2 − 𝑙 𝑙 𝜃 𝜃 sin⁡
(𝜃2 )
𝑑𝑡 𝑑𝜃2 3 3 2 2 12 1 2

𝑑𝐿 𝑚2 𝑚2 𝑚2 2
= 𝑔𝑙 cos 𝜃1 + 𝜃2 − 𝑙 𝑙 𝜃 𝜃 sin 𝜃2 − 𝑙 𝑙 𝜃 sin 𝜃2
𝑑𝜃2 2 2 2 12 1 2 2 12 1

Finalement la deuxième équation de Lagrange est :

𝑚2 2 𝑚2 2 𝑚2 𝑚2
𝑙 𝜃 + 𝑙 𝜃 + 𝑙 𝑙 𝜃 cos 𝜃2 − 𝑚2 𝑙1 𝑙2 𝜃1 𝜃2 sin 𝜃2 − 𝑔𝑙 cos 𝜃1 + 𝜃2
3 2 1 3 2 2 2 12 1 2 2
𝑚2 2
− 𝑙 𝑙 𝜃 sin 𝜃2 = 𝜏2
2 12 1

La représentation d’état du système : la représentation est comme suit :

𝜃1
𝑋 = 𝑓 𝑋, 𝑈 𝜃1 𝜏1 𝜃1
; Avec 𝑋= , 𝑈= 𝜏 ,𝑌 = .
𝑌 = 𝑔(𝑋, 𝑈) 𝜃2 2 𝜃2
𝜃2

On remarque directement que :


𝑥1 = 𝜃1 = 𝑥2
𝑥3 = 𝜃2 = 𝑥4

Puis pour avoir 𝑥2 = 𝜃1 et 𝑥4 = 𝜃2 on va tirer 𝜃2 de la deuxième équation de Lagrange et on la


remplacera dans la première.
De la deuxième équation de Lagrange :

3𝜏 2 3𝑙 3𝑙 1 3𝑔 3𝑙 2
𝜃2 = 𝑚 2 − 1 + 2𝑙 1 cos 𝜃2 𝜃1 + 𝜃 𝜃 sin
𝑙2 1 2
𝜃2 + 2𝑙 cos 𝜃1 + 𝜃2 + 2𝑙 1 𝜃1 sin⁡(𝜃2 ) (*)
2 𝑙2 2 2 2
Dans la première équation donne :

3𝑙1 3 3 𝑚1 3
𝜏1 − 1 + cos 𝜃2 𝜏2 − 𝑚2 𝑙1 2 𝜃1 𝜃2 sin 2𝜃2 − 𝑚2 𝑙2 𝑔𝑐𝑜𝑠 𝜃1 + 𝜃2 + 𝑚2 𝑙1 𝑔𝑐𝑜𝑠 𝜃2 cos 𝜃1 + 𝜃2 + 𝑔𝑙1 + 𝑚2 cos 𝜃1 − 𝑚2 𝑙1 2 sin⁡
(2𝜃2 )
2𝑙2 4 4 2 8
𝜃1 =
𝑚1 3
𝑙1 2 + 𝑚2 + 𝑚2 𝑙1 2 𝑐𝑜𝑠 2 (𝜃2 )
3 4

Dans (*) donne :

3𝑙1
3𝜏2 1+ cos 𝜃2 3𝑙1 3
2𝑙2
𝜃2 = − 𝜏1 − 1 + cos 𝜃2 𝜏2 − 𝑚2 𝑙1 2 𝜃1 𝜃2 sin 2𝜃2
𝑚2 𝑙 2 2 𝑚1 3 2𝑙 4
𝑙1 2 2
+ 𝑚2 + 𝑚2 𝑙1 𝑐𝑜𝑠 2 (𝜃2 ) 2
3 4
3 𝑚1
− 𝑚2 𝑙2 𝑔𝑐𝑜𝑠 𝜃1 + 𝜃2 + 𝑚2 𝑙1 𝑔𝑐𝑜𝑠 𝜃2 cos 𝜃1 + 𝜃2 + 𝑔𝑙1 + 𝑚2 cos 𝜃1
4 2
3 3𝑙1 3𝑔 3𝑙1 2
− 𝑚2 𝑙1 2 sin⁡(2𝜃2 ) + 𝜃 𝜃 sin 𝜃2 + cos 𝜃1 + 𝜃2 + 𝜃 sin⁡ (𝜃2 )
8 𝑙2 1 2 2𝑙2 2𝑙2 1

Finalement la représentation d’état du système est :

 𝑥1 = 𝑥2
3𝑙 3 3 𝑚1 3
𝑢 1 − 1+2𝑙 1 cos 𝑥 3 𝑢 2 −4 𝑚 2 𝑙1 2 𝑥 2 𝑥 4 sin 2𝑥 3 − 𝑚 2 𝑙2 𝑔𝑐𝑜𝑠 𝑥 1 +𝑥 3 +4 𝑚 2 𝑙1 𝑔𝑐𝑜𝑠 𝑥 3 cos 𝑥 1 +𝑥 3 +𝑔𝑙1 +𝑚 2 cos 𝑥 1 −8 𝑚 2 𝑙1 2 sin ⁡
(2𝑥 3 )
2
 𝑥2 = 2
𝑚1 3
𝑙1 2 +𝑚 2 + 𝑚 2 𝑙1 2 𝑐𝑜𝑠 2 (𝑥 3 )
3 4

 𝑥3 = 𝑥4
3𝑙 1
3𝑢 2 1+ cos 𝑥 3 3𝑙 1 3
𝑢2 − 𝑚2 𝑙1 2 𝑥2 𝑥4 sin 2𝑥3 − 𝑚2 𝑙2 𝑔𝑐𝑜𝑠 𝑥1 + 𝑥3 +
2𝑙 2
 𝑥4 = 2 − 2 𝑚1 3 𝑢1 − 1 + cos 𝑥3
𝑚 2 𝑙2 𝑙1 +𝑚 2 + 𝑚 2 𝑙 1 2 𝑐𝑜𝑠 2 (𝑥 3 ) 2𝑙 2 4
3 4
3 𝑚1 3 2 3𝑙 1 3𝑔
𝑚 𝑙 𝑔𝑐𝑜𝑠 𝑥3 cos 𝑥1 + 𝑥3 + 𝑔𝑙1 + 𝑚2 cos 𝑥1 − 𝑚2 𝑙1 sin⁡
(2𝑥3 ) + 𝑥2 𝑥4 sin 𝑥3 + cos 𝑥1 + 𝑥3 +
4 2 1 2 8 𝑙2 2𝑙 2
3𝑙 1
𝑥 2 sin⁡
(𝑥3 )
2𝑙 2 2
II. Partie 2 :
1. Linéarisation : On va linéariser le model autour du point de fonctionnement
𝜃1 = 30° , 𝜃2 = 30° .
30°
On cherche d’abord les couples correspondants en remplaçant 𝑋 = 0 ° dans
30
0
l’équation d’état du système, mais ça serai plus facile (et plus sure) de retourné
aux lois de la physique pour déterminé les couples aux point d’équilibre.
Le bras est en équilibre si (𝑆1 ) et (𝑆2 ) sont en équilibre.
𝑑𝑒𝑠 𝑓𝑜𝑟𝑐𝑒𝑠 = 0
𝑆𝑖 en équilibre si
𝑑𝑒𝑠 𝑚𝑜𝑚𝑒𝑛𝑡𝑠 = 0

Pour (S1) : ( voir -figure 4-)

𝐹𝑥 = 𝑅𝑥
𝐹𝑦 + 𝑚1 𝑔 = 𝑅𝑦
𝑙1 3 3
𝜏1 + 𝐹𝑥 = 𝑚1 𝑔 𝑙1 + 𝐹𝑦 𝑙
2 4 2 1

-Figure 4-
Remarque :
𝐹𝑥 et 𝐹𝑦 sont les composants de la force
appliquer par (S2) sur (S1).

Pour (S1) : ( voir -figure 5-)

𝐹𝑥 = 0
𝐹𝑦 = 𝑚2 𝑔
𝑙2
𝜏2 = 𝑚2 𝑔
4

-Figure 5-

-
3 𝑚
A travers les six équations établies on tire : * 𝜏1 = 𝑙 𝑔 1 + 𝑚2
2 1 2

𝑙2
* 𝜏2 = 4
𝑚2 𝑔

La linéarisation :

𝑋 = 𝑋 + ∆𝑋
On a : 𝑈 = 𝑈 + ∆𝑈
𝑌 = 𝑌 + ∆𝑌

Ainsi on s’intéresse au système :

∆𝑋 = 𝐴∆𝑋 + 𝐵∆𝑈
∆𝑌 = 𝐶∆𝑋

Avec :

 xx1 X  X x1
x2 X  X
x1
x3 X  X
x1
x4 X  X
  ux1 X X
x1
u 2 X  X

 1 U U U U U U U U   1 U U U U 
 x2 x 2 x 2 x 2   x 2 x 2 
 x1 UX UX x2 X  X
U U
x3 X  X
U U
x4 X  X
U U
  u1 X X
U U
u 2 X  X
U U

A   x x3 x3 x3  B   x3 x3 
 x1 X  X   u1 
3
x2 X  X x3 X  X x4 X  X X X u 2 X  X
  U U U U U U U U
  x U U
x 4
U U

 xx14 X  X x 4
x2 X  X
x 4
x3 X  X
x 4
x4 X  X
  u41 X X u 2 X  X

 U U U U U U U U   U U U U 

1 0 0 0
𝐶=
0 0 1 0

Apres calcule on trouve :


En remplaçant 𝑙1 , 𝑙2 , 𝑚1 , 𝑚2 et 𝑔 par leur valeurs numérique on trouve :

0 1 0 0 0 0
−3.8506 18.1082 0 0 3.5888 −12.9127
𝐴= ; 𝐵= ;
0 0 0 1 0 0
−50.8321 0 −84.1396 0 −12.9127 142.4610

1 0 0 0
𝑐= .
0 0 1 0

a) La stabilité : la stabilité d’un système est caractérisée par ses pôles ou valeurs propres
de la manière suivante :
 Si ∀ 𝑖 = 1 … 𝑛 ; 𝑅𝑒𝑎𝑙 ℷ𝑖 < 0 le système est exponentiellement stable.
 Si ∀ 𝑖 = 1 … 𝑛 ; 𝑅𝑒𝑎𝑙 ℷ𝑖 ≤ 0 le système est stable au sens de LYAPUNOV.
 Si ∃𝑖 ∈ [1, 𝑛] ; 𝑅𝑒𝑎𝑙 ℷ𝑖 > 0 le système est instable.

Pour vérifier la stabilité du système :

eig(A)

ans =

0.0000 + 8.3836i

0.0000 - 8.3836i

0 + 4.2079i

0 - 4.2079i

On remarquera qu’il y a deux pôles sont à partie réelle positive. Par conséquent le système
est instable.

b)La comandabilité : La commandabilité décrit la relation entre l’entrée et les variables d’etat du
système c'est-à-dire comment une entrée peut influencer ces variables d’états.
Un système est dit complètement commandable si et seulement si le rang de sa matrice de
commandabilité est égale à la dimension de sa matrice A.

Si rang(com)=n le système est completement commandable ;

Com=[𝐵 𝐴. 𝐵 𝐴2 𝐵 … 𝐴𝑛−1 𝐵] ; 𝐴 ∈ 𝑅 𝑛×𝑛 .

Pour étudier la comandabilité :

>> com=ctrb(A,B);

>> rank (com)

ans =

Le rang de la matrice de commandabilité est egale à 4 ; donc le système est complètement


commandable.

c) L’observabilité : L’observabilité est une notion duale à la commandabilité ,elle décrit la


relation entre les variables d’etat et les sorties du système ,c'est-à-dire comment les
variables d’etats influent les sorties.
Un système est dit complètement observable si le rang de la matrice d’observabilité est égale au
rang de la matrice A du système.

Si rang(obs)=n le système est complètement observable ;

𝐶
𝐶𝐴
ob= ; 𝐴 ∈ 𝑅𝑛×𝑛 .

𝐶𝐴𝑛−1

>> obs=obsv(A,C);

>> rank(obs)

ans =

4
Donc le système est complètement observable.

2. Synthèse de la comande RE :
2.1. Sans prècompensateur :
La comande par retour d’état consiste à appliquer la commande
𝑈 = −𝐾𝑋 + 𝑟 ce qui nous donne une nouvelle matrice 𝐴𝐵𝐹 = 𝐴 − 𝐵𝐾 ce
qui permet d’agir sur les poles du système en choisissant la matrice du
gain 𝐾,car notre système est complètement commandable.
On choisira les pôles -1,-1,-1,-1.
Le schéma de la commande par retour d’etat est le suivant :

On va simuler ce schéma avec le simulink de Matlab comme suit :


On calcule le gain du retour d’état 𝐾 avec la fonction de Matlab place.

>> K=place(A,B,[-4 -5 -4 -5])

K=

4.7726 3.7215 5.0838 0.3373


0.0758 0.3373 0.0106 0.0937

Ainsi la nouvelle matrice du système en boucle fermé est :

>> Abf=A-B*K

Abf =

0 1.0000 0 0
-20.0000 -9.0000 0.0000 0.0000
0 0 0 1.0000
0 -0.0000 -20.0000 -9.0000

On remarque que les pole sont placé comme voulu.


Pour les simulations on va choisir des références de 5° et 9° pour 𝜃1 et 𝜃2
respectivement.
Les réponses sont montrées dans le graphe suivant :
On remarque que le système est stabilisé par la commande retour d’état ,la poursuite est réalisé
mais avec une erreur statique importante ,cette erreur est justifier car :

𝐺𝑏𝑓 𝑠 = 𝐶 𝑠𝐼 − 𝐴𝑏𝑓 𝐵

et comme 𝑌 𝑠 = 𝐺𝑏𝑓 𝑠 . 𝑟(𝑠)

−1
donc 𝑌 𝑠 = 𝐶 𝑠𝐼 − 𝐴𝑏𝑓 𝐵. 𝑟(𝑠)

−1
on a lim𝑡→∞ 𝑌 𝑡 = 𝐺𝑏𝑓 0 = 𝐶 −𝐴𝑏𝑓 𝐵

ainsi l’erreur de statique vaut :

>> E=C*inv(-Abf)*B

E=

0.1794 -0.6456

-0.6456 7.1231

Pour remédier à ce problème on utilise un précompensateur illustré dans le paragraphe qui suit.

2.2. RE+ précompensateur : On a vu dans le paragraphe précédent que la


commande par retour d’état simple introduit une erreur statique ;pour éliminer
cette erreur on va utiliser un précompensateur comme le montre le schéma de
commande suivant :

−1
Dans ce cas on a : 𝑌 𝑠 = 𝐶 𝑠𝐼 − 𝐴𝑏𝑓 𝐵. 𝑁. 𝑟(𝑠)
−1
Ainsi lim𝑡→∞ 𝑌 𝑡 = 𝐺𝑏𝑓 0 = 𝐶 −𝐴𝑏𝑓 𝐵. 𝑁
D’où pour annuler l’erreur statique
−1 −1
𝑁 = 𝐶 −𝐴𝑏𝑓 𝐵. 𝑁
>> N=inv(C*inv(-Abf)*B)

N=

8.2700 0.7496
0.7496 0.2083

On utilise le schéma dans simulink comme suit :

Ainsi les réponses du système sont :


On remarque très bien que l’erreur statique est annulée en ajoutant un
précompensateur et les performances sont très bien réalisées.

3. Synthèse de la commande RE+observateur : (on intégrera le précompensateur)


On va utiliser un observateur en boucle fermé d’ou :

∶ ∆𝑋 = 𝐴∆𝑋 + 𝐵∆𝑈
∆𝑌 = 𝐶∆𝑋

: ∆𝑋 = 𝐴∆𝑋 + 𝐵∆𝑈 + 𝐿(𝑌 − 𝑌)


∆𝑌 = 𝐶∆𝑋

RE : 𝑈 = −𝐾∆𝑋 + 𝑁. 𝑟

Dans ce cas on a un état qui se rajoute au système qui est ∆𝑋 , en posant


∆𝑋
𝑍= le système devient en boucle fermé :
∆𝑋

𝐴 −𝐵𝐾 𝐵
𝑍= 𝑍+ 𝑁. 𝑟
𝐿𝐶 𝐴 − 𝐵𝐾 − 𝐿𝐶 𝐵
𝑌= 𝐶 0𝑍

Les pole du système sont :


VP= ℷ𝐼 − 𝐴 + 𝐿𝐶 ℷ𝐼 − 𝐴 + 𝐵𝐾
𝑝𝑜𝑙𝑒 𝑑𝑒 𝑝𝑜𝑙𝑒 𝑑𝑢
𝑙′ 𝑜𝑏𝑠𝑒𝑟𝑣𝑎𝑡𝑒𝑢𝑟 𝑅𝐸

On remarque ainsi que la synthèse de l’observateur et le RE sont indépendante, c'est-


à-dire que la synthèse du RE se fait on supposant avoir le vecteur d’état, c’est le
principe « d’équivalence certaine », sans oublié que l’observateur doit être plus
rapide que le la dynamique des états.
Le schéma de commande du RE+observateur est le suivant :
Pour déterminer la matrice du gain de l’observateur on utilise la fonction matlab
place sur 𝐴𝑇 et 𝐶 𝑇 le résultat est 𝐿𝑇 :

>> place(A',C',[-25 -26 -27 -28]);


>> L=ans'

L=

52.8039 1.0361
692.5095 45.6136
0.9251 53.1961
-26.3400 622.4972

Dans ce cas le precompensateur change devaleur et devient :

−1
𝑁𝑧 = [𝐶𝑧 −𝐴𝑧 𝐵𝑧 ]−1

>> Nz=inv(Cz*inv(-Az)*Bz)

Nz =

8.2700 0.7496
0.7496 0.2083

Pour simuler cette commande sur Matlab on utilise le shéma suivant :


Le scope est utilisé pou comparer les sorties avec les références, et le scope1 est
utilisé pour comparer les variable d’états estimées avec sel du système.
On va d’abord visualiser sur le scope1

On remarque que les états estimées coïncide avec les états réelle du système, donc
on se basera sur cette observateur dans la suite du TP pour avoir les état du système.
Visualisons maintenant les performances :

On remarque que les performances sont conservées en utilisant l’observateur, ce


résultat été prévisible du point que le vecteur d’état estimé coïncide avec le réel.

4. Synthèse de la commande RE+action intégral : cette fois ci on va enlever le


precompensateur et utiliser l’action intégrale pour annuler l’erreur statique et on
comparera entre l’action intégral et le précomcompensateur .
D’où le schéma de commande de RE+action intégral est le suivant :
Dans ce cas on un nouvelle état 𝑧((𝑡) qui se rajoute avec :
𝑡
𝑧 𝑡 = 0
𝑒
𝜏 𝑑𝜏 ; 𝑒 𝑡 = 𝑟 − 𝑌(𝑡)
𝑋(𝑡)
𝑈 𝑡 = − 𝐾 – 𝐾𝐼 . 𝜉(𝑡) ; 𝜉 𝑡 = ; 𝐾𝜉 = − 𝐾 – 𝐾𝐼
𝑧(𝑡)
Le système en boucle fermé devient :

0
𝜉 = 𝐴𝜉 . 𝜉 + 𝐵𝜉 . 𝑈 + .𝑟
𝐼 𝐴 0 𝐵
𝑌 = 𝐶𝜉 . 𝜉 ; 𝐴𝜉 = ; 𝐵𝜉 = ; 𝐶𝜉 = [𝐶 0] .
−𝐶 0 0
𝑈 = −𝐾𝜉

On remarque que 𝑈 apparait comme un retour d’état de l’état augmenté 𝜉 ,donc on


détermine 𝐾𝜉 par placement de pole .

>> Kxi=place(Axi,Bxi,[-4 -5 -4 -5 -2 -3])

Kxi =

15.7726 4.9437 6.7103 0.5180 24.4445 3.6144


1.0886 0.4499 0.2886 0.1246 2.2507 0.6178

En utilisant le schéma de commande suivant sur simulink :

Les résultats de simulation sont les suivantes :


On remarque l’erreur statique est annulé mais un dépassement apparait et pour
supprimé ce dépassement on est obligé d’augmenté le temps de repense.

On remarque ainsi que l’action intégrale assure l’annulation de l’erreur statique mais
retarde le système, mais apporte un avantage par rapport au précompensateur du
point qu’elle n’utilise que les signaux entrées/sorties du système.

III. Partie 3 : dans cette partie on va appliquer les commande qu’on a synthétisé dans la
deuxième partie a partir du model linéaire, au model non réel du système .et on va donné
une petite amplitude de la référence (pour resté dans la zone de linéarité ) et une autre plus
grande (pour s’éloigner de la zone de linéarité ) et on analysera les résultats de la simulation.
a) Sans observateur :

Le schéma de commande est le suivant :

Voici Le schéma utilisé sur Matlab :

On va d’abord donner un angle de 9° pour 𝜃1 et 5° pour 𝜃2 pour rester dans la zone


de linéarité, les résultats de la simulation sont les suivants :

𝑦1 :
𝑦2 :

On remarque que le système reste stable les performances sont réalisées mais avec
une erreur statique, on va essayer d’éliminer cette erreur on agissant sur le
précompensateur , on remarque que l’erreur est a peut près 3 sur les deux sortie
donc l’idée qui vient est de divisé la diagonal du precompensateur sur 3 est le
résultat est le suivant :

𝑦1 :

𝑦2 :
On remarque une nette amélioration par rapport a l’erreur statique , on peut encore amélioré ce
résultat on agissant sur le précompensateur par essai erreur.

Essayons maintenant d’augmenté la valeur de la commande pour voir comment le système réagit
quand on s’éloigne de la zone de linéarité.

On va appliquer 20° pour 𝜃1 et 24° pour 𝜃2 , les résultats sont comme suit :

𝑦1 :

𝑦2 :
On remarque que les performances sont pas bien réalisées c’est le résultat qu’on prévoyait, donc la
commande qu’on synthétisé a partir du model linéaire peut être appliqué sur le mode réel pour une
commande pas trop élevé pour rester dans la zone de linéarité, la commande qu’on a synthétisé
peut rester valable pour une commande allant jusqu'à 20° .

En utilisant l’action intégrale :

Le schéma qu’on va utiliser sur Matlab est le suivant :

Les simulations ont donné les résultats suivants :

𝑦1 :
𝑦2 :

On remarque que les performances sont diminués en remplaçant le précompensateur par l’action
intégral sur le model non linéaire est le système est dans la limite de stabilité est ça est du a la non
linéarité(normalement les performance reste conservé car la commande est très petite et on est
resté dans la zone de linéarité ??? ).

b) Avec observateur :

Le schéma de commande est le suivant :

  U Y
N 

 
U B Y
   
K  
L 
Y

Yˆ
A
C
Le schéma qu’on utilise sur Matlab est comme suit :

Voice les résultats de la simulation :


On remarque que le système reste stable en utilisant un observateur et donne le même résultat
qu’en utilisant les états du système directement donc l’observateur donne une très bonne
approximation des états du système non linéaire même si on l’a synthétisé a base du model non
linéaire.

On va maintenant visualiser les états réels du système et les états estimé par l’observateur :

𝑥1 :
𝑥2 :

𝑥3 :
𝑥4 :

On remarque que l’observateur appliqué au model non linéaire donne des résultats biaisé ça est
du a la non linéarité mais ces résultat on suffit pour stabiliser le système.

Conclusion général : on a vu dans ce TP qu’on peut commander un système réel non linéaire tout
d’abord en en écrivant les lois de la physique qui régissent le système puis en trouvant la
représentation d’état du système non linéaire.

Ensuite en linéarisant le système autour d’un point de fonctionnement choisi arbitrairement.


on a ensuite synthétisé les commande RE,RE+intégrale , avec et sans observateur et on a pu
analyser et comparer entre les régulateur appliqué .

Ensuite on a appliqué les régulateur synthétiser a base du model non linéaire au système non
linéaire et on a vue que sa a donné de bon résultat.

Enfin dans ce TP en a pu toucher et voir de plus près les notions et les propriétés vue en cours et
sa été un très bon apprentissage pour la synthèse des régulateurs dans l’espace d’état.

Vous aimerez peut-être aussi