CASTEL Philippe JOUSSERAND Stéphane: Commande Par Retour D'Etat D'Une Bille Sur Un Rail
CASTEL Philippe JOUSSERAND Stéphane: Commande Par Retour D'Etat D'Une Bille Sur Un Rail
A Energie-série C
COMMANDE
1
1. MODELISATION
d²x
On sait que la bille obéit à la loi suivante : K b.θ
dt²
y 0 k1 .X 0.U c
kb
0 0
Donc, A 1 B k2 , C 0 k1 , et D=0
0 ,
0
1.2 DISCRÉTISATION
La période d’échantillonnage donnée est : 200 ms. Nous choisissons
un bloqueur d’ordre 0, car c’est le système le plus couramment utilisé.
1 0 0.0426
C1d 0 7 , et D1d 0
1 , ,
A1d B1d
0,2 0.0043
2
2. ASSERVISSEMENT EN POSITION SANS INTEGRATEUR
remarque :
Le retour d’état étant discrétisée, il est nécessaire de représenter L par
un « gain discret ».
0.0426 0.0426
M Commandabilité A1d A1d.B1d
0.0043 0.0128
Calcul de L
Avec la commande par retour d’état, on a : U C L.X G.U CX
L qui permet le placement des pôles et donc de choisir la
dynamique du système
G doit garantir un gain statique unitaire en BF.
On obtient alors le système suivant :
3
X (A1dB1d.L).XG.B1d.U
Cθ
Y C1d.X
Calcul de G :
G doit garantir le gain statique unitaire du système en BF.
A partir du système suivant : X (A1dB1d.L).X[Link]θ , on peut
Y C1d.X
déterminer la fonction de transfert : FT C1d.(z.I A1d B1d.L) .G.B1d
1
on obtient alors :
G0,5505
perturbation
Step1
Uc_teta X'
Ucx Integrator1 x
x V' V
1 X1 Ux
K1 G teta rail Kb K1
s s Scope
Step Gain2 In1 v itesse Gain Integrator Gain4
Gain6 Zero-Order
Hold courant
Subsystem
Scope2
Scope1
L1 Scope3
1
Discrete Filter L2
1
Discrete Filter1
4
Visualisation :
0.3
avec perturbation
position (m) 0.2
consigne (0.1 m)
0.1
sans perturbation
0
0 2 4 6 8 10 12 14 16 18 20
visualisation des variables d'état
0.3
0.2
postion (m)
0.1 vitesse (m/s)
-0.1
0 2 4 6 8 10 12 14 16 18 20
courant dans le moteur (A)
20
10
-10
0 2 4 6 8 10 12 14 16 18 20
commande U téta (V)
0.5
-0.5
-1
0 2 4 6 8 10 12 14 16 18 20
temps (s)
5
détermination du temps de réponse
0.11
consigne
0.1
0.09
0.08
temps de reponse à 5%
position de la bille (m)
0.07
0.06
0.05
0.04
0.03
0.02
0.01
0
0 1 2 3 4 5 6 7 8 9 10
temps
correctif.
K u(n)
Bd
K
retard 1 Ad K
z
K y(n)
Cd
Vecteur d’état
x estimé simout
6
Nous devons penser à rajouter des échantillonneurs bloqueurs d’ordre 0
sur y et u afin d’avoir une commande discrète.
Détermination de l’observateur :
C1d 0 7
Q0
C1d A1d 1.4 7
T 0 1
0 .2
T
C1d et A1d
7 1
0
On calcule maintenant det( z I A C F ) avec K F
T T T
F f1 f 2
On a ainsi : det( z I A C F ) z (7 f 2 2) z 1.4 f1 7 f 2 1
T T 2
(7 f 2 2) 2 a
1.4 f 1 7 f 2 1 a
2
Soit :
2 (a 1)
f2
7
f 1 1)
2
( a
1.4
Or det( z I A C F ) avec K F
T T T
D’où
7
(a 1) 2
K 1.4
2 (1 a)
7
On s’aperçoit que K dépend des pôles de l’observateur. Par la suite, il
importe de simuler l’observateur avec différents pôles afin de regarder
l’influence qu’ils ont sur le système.
Commande acker
2.23 Simulation :
8
Schéma de simulation
perturbation
X' Integrator3 Ux
Xc
Uc_teta V' 1 V 1 X
Ucx teta rail Kb K1
x s s
K1 In1 v itesse Gain1 In Gain7
Step courant
Gain6 Zero-Order
Hold1 Subsystem1
Zero-Order
Scope6
Commande
x estimée Zero-Orde
y
Scope7
Observateur
9
Tracer des VE pour a=0.75
Tracer de la VE x : estimée et réelle
CI x(0)=2mm et v(0)=0.1 m/s
2
1.5
position en métres
0.5
0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
temps en secondes
0.6
0.5
vitesse en m/s
0.4
0.3
0.2
0.1
0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
temps en secondes
-0.02
vitesse en m/s
-0.04
-0.06
-0.08
-0.1
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
temps en secondes
-0.005
-0.01
position en m
-0.015
-0.02
-0.025
-0.03
-0.035
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
temps en secondes
10
a=0.3
Tracer de l'erreur absolue entre la VE réelle et estimée de la vitesse avec a=0.3
0.02
-0.02
vitesse en m/s
-0.04
-0.06
-0.08
-0.1
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
temps en secondes
-3
x 10 Tracer de l'erreur absolue entre la VE réelle et estimée de la position a=0.3
5
0
postion en m
-5
-10
-15
-20
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
temps en secondes
a=0
Tracer de l'erreur absolue entre la VE réelle et estimée de la vitesse avec a=0.
0.02
-0.02
vitesse en m/s
-0.04
-0.06
-0.08
-0.1
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
temps en secondes
-3
x 10 Tracer de l'erreur absolue entre la VE réelle et estimée de la position avec a=0
5
0
position en m
-5
-10
-15
-20
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
temps en secondes
11
On remarque à l’issu de ces simulations, que les VE estimés suivent plus ou
moins rapidement les variables réelles du système suivant la rapidité des pôles.
En effet, plus les pôles sont rapides ; plus l’observateur suit rapidement les VE
du système.
Par la suite, nous prendrons pour les pôles de l’observateur 2 pôles doubles
valant 0.0 afin d’avoir une dynamique de l’observateur relativement rapide.
On va s’intéresser à une erreur sur la modélisation. Soit par exemple : une
erreur de 50 % sur kb. On va donc prendre un kb de 3.05.
Visualisation de la VE x (position) estimée et réelle
avec une erreur de 50 % sur la modélisation de kb
0.5
0.4
P osition en m
0.3
0.2
0.1
0
0 0.5 1 1.5 2 2.5 3
temps en secondes
0.3
0.25
vites s e en m /s
0.2
0.15
0.1
0.05
0
0 0.5 1 1.5 2 2.5 3
temps en secondes
Tracer de l’erreur
Visualisation de l'erreur concernant la VE v (vitesse) estimée et réelle
avec une erreur de 50 % sur la modélisation de kb
0.04
E rreur s ur la vites s e en m /s
0.02
-0.02
-0.04
-0.06
-0.08
-0.1
0 0.5 1 1.5 2 2.5 3
temps en secondes
-5
-10
-15
-20
0 0.5 1 1.5 2 2.5 3
temps en secondes
12
Interprétation :
2.31 Schéma :
perturbation Scope
Gain X' Integrator1
Uc_teta x
V' V X1 Ux
1
x Ucx teta rail Kb K1
s s
K1 1 In1 v itesse Integrator Gain4
Step2 Gain2 courant
Gain7 Zero-Order
Hold Subsystem
Scope2
Scope3
Commande
Scope4
K x estimée
y
L
Observateur1
2.32 Simulation :
Pour la commande par retour d’état, nous remettons des conditions
initiales sur les intégrateurs nulles. La perturbation que nous mettons au bout de
10 secondes, une fois le régime permanent atteint, correspond à une
perturbation d’angle de 1°.
13
Visualisation de la VE (position) estimée et réelle
avec une commande en retour d'état avec observateur
0.35
0.3
0.25
position en m
0.2
0.15
0.1
0.05
0
0 2 4 6 8 10 12 14 16 18 20
Temps en secondes
0.06
0.04
vitesse en m/s
0.02
-0.02
-0.04
0 2 4 6 8 10 12 14 16 18 20
temps en secondes
0
Erreur sur la vitesse en m/s
-0.005
-0.01
-0.015
-0.02
-0.025
-0.03
-0.035
0 2 4 6 8 10 12 14 16 18 20
temps en secondes
0
Erreur sur la position en m
-1
-2
-3
-4
-5
0 2 4 6 8 10 12 14 16 18 20
temps en s
14
Lorsqu’on applique une perturbation sur le système, une erreur statique
apparaît entre les grandeurs estimées et réelles.
10
Courant en Ampère
-5
-10
0 2 4 6 8 10 12 14 16 18 20
temps en secondes
15
3. ASSERVISSEMENT EN POSITION DE LA
BILLE AVEC INTEGRATEUR
Ucx
Ucteta XK+1=[Link]+[Link] Ux E
YK=[Link]+[Link] IK+1=IK+UK
X
L
I
Xtilde
X1 v
~ v
avec X X 2 x ; X x et L L1 L2 L3
X 3 i
On a alors :
1 0 0 1 0 0 0.0426 0
A 0.2 1 0 0.2 1 0 B1 0.0043 B 2 0 C 0 7 0
C1d1 C1d 2 1 0 7 1 0 1
D 0
16
Calcul du retour d’état L sur l’entrée UC :
~
On a U C L.X g.U CX , d’où le schéma suivant :
G perturbation
Scope4
1
Xc Discrete X'
x Step1 Integrator3
Ucx Transfer Fcn3 Uc_teta V X Ux
V' 1 1
K1 teta rail Kb K1
y(n)=Cx(n)+Du(n) Le3 s s
Step x(n+1)=Ax(n)+Bu(n) In1 v itesse Gain1 Integrator2 Gain5
Gain6 1
intégrateur Discrete Zero-Order courant
Transfer Fcn Hold1 Subsystem1
Scope6 Scope5
Scope7 Le1
1
Discrete Filter2
Le2
1
Discrete Filter3
Calcul de L :
On dispose de 2 possibilités de calculs de L.
Soit en gardant les pôles doubles calculés précédemment, et dans ce cas on
choisit alors le troisième pôle beaucoup plus rapide (en zéro).
Le=acker(A,B1,[0.8269 0.8269 0])
Dans ce cas L 27,32 42,37 0,5
Pour G=0, on obtient la simulation suivante :
commande par retour d'état avec intégrateur (1 pôle double, 1 pôle très rapide) et G=0
0.2
position de la bille
après perturbation
consigne
0.1
position de la bille
avant perturbation
0
0 2 4 6 8 10 12 14 16 18 20
0.2
visualisation des variables d'état
0
x (m)
v (m/s)
-0.2
0 2 4 6 8 10 12 14 16 18 20
20
Courant dans le moteur (A)
0
-20
-40
0 2 4 6 8 10 12 14 16 18 20
0.5
commande Uctéta (V)
0
-0.5
-1
0 2 4 6 8 10 12 14 16 18 20
temps (s)
17
Temps de réponse
0.12
0.1
0.06
0.04
0.02
0
0 2 4 6 8 10 12 14 16 18 20
18
0.2
position de la bille
après perturbation
consigne
0.1
position de la bille
avant perturbation
0
0 2 4 6 8 10 12 14 16 18 20
0.2 x (m)
visualisation des variables d'état
v (m/s)
0.1
0 2 4 6 8 10 12 14 16 18 20
10
Courant dans le moteur (A)
0
-10
-20
0 2 4 6 8 10 12 14 16 18 20
commande Uctéta (V)
0.5
-0.5
-1
0 2 4 6 8 10 12 14 16 18 20
temps (s)
temps de réponse à 5%
0.14
0.12
0.1
0.06
0.04
0.02
0
0 2 4 6 8 10 12 14 16 18 20
temps (s)
19
Conclusion :
Les deux méthodes donnent un même temps de réponse à 5%, environs
5,2s.
Par contre on remarque, que la méthode avec un pôle triple est moins
contraignante pour la commande du système (en courant et en commande
angulaire).
Le système fonctionne correctement en régulation, il compense
rapidement (environ 5 s) l’erreur sur , grâce à l’intégrateur.
La réponse à une perturbation est différente pour les deux méthodes :
Dans le cas d’un fonctionnement en régulation on privilégiera la
0.45
avant perturbation après perturbation
0.4
G=10
0.35
0.3
0.25
G=5
0.2 G=0, G=5, G=10
0.15
consigne
0.1
G=0
0.05
0
0 2 4 6 8 10 12 14 16 18 20
20
FICHIERS MATLAB
Le1=Le(1)
Le2=Le(2)
Le3=Le(3)
%CALCUL DE G
G=0
%SIMULATION
subplot(4,1,1),plot([Link],[Link])
subplot(4,1,2),plot([Link],[Link])%variables
d'état
subplot(4,1,3),plot([Link],[Link])
%visualisation de la commande
subplot(4,1,4),plot([Link],[Link])
%visualisation de la commande
21
3.2 COMMANDE PAR RETOUR D’ÉTAT AVEC INTÉGRATEUR ET
OBSERVATEUR :
3.21 Schéma :
Errreur de la variable x
estimée et réelle
Les valeurs prises par le retour d’état Le1, Le2, Le3 d’état sont les mêmes que
dans le 3.1. En effet, l’observateur ne rentre pas en compte dans le calcul du
retour d’état.
3.22 Simulation :
On va tracer la position avec la consigne. De plus, nous traçons les VE.
Consigne et Position
0.2
0.15
position en m
0.1
0.05
0
0 2 4 6 8 10 12 14 16 18 20
temps en secondes
VE x
0.2
0.15
position en m
0.1
0.05
0
0 2 4 6 8 10 12 14 16 18 20
temps en secondes
VE v
0.06
0.04
vitesse en m/s
0.02
-0.02
-0.04
0 2 4 6 8 10 12 14 16 18 20
temps en secondes
22
Erreur de la VE v entre l'etimé et la valeur réelle
lors d'une commande par retour d'état avec intégrateur
0.01
0
vitesse en m/s
-0.01
-0.02
-0.03
-0.04
0 2 4 6 8 10 12 14 16 18 20
temps en secondes
-1
position en m
-2
-3
-4
-5
0 2 4 6 8 10 12 14 16 18 20
temps en secondes
23
Courant avec une commande par retour d'état et intégrateur et un observateur
10
0
intensité en A
-5
-10
-15
0 2 4 6 8 10 12 14 16 18 20
temps en secondes
24