Académique Documents
Professionnel Documents
Culture Documents
Maître de stage :
Stagiaire :
Mme Karine Beauchard
Juliette Legrand
ENS Rennes
ENS Rennes
Sommaire
Introduction 3
3 Systèmes semblables 11
4 Forme de Brunovsky 12
6 Contrôle optimal 14
7 Le pendule inversé 16
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
7.2 Mise en équations du mouvement du pendule . . . . . . . . . 17
7.3 Contrôlabilité du système . . . . . . . . . . . . . . . . . . . . 18
8 Génération de trajectoire 19
8.1 Génération de trajectoire en boucle ouverte . . . . . . . . . . 20
8.2 Contrôle optimal en boucle ouverte . . . . . . . . . . . . . . . 21
8.3 Suivi de trajectoire (boucle fermé) . . . . . . . . . . . . . . . 22
VI Annexes 27
9 Critère de Routh 27
1
10 Interpolation de Hermite 28
11 Programmes Scilab 30
11.1 Contrôle de référence . . . . . . . . . . . . . . . . . . . . . . . 30
11.2 Contrôle optimal . . . . . . . . . . . . . . . . . . . . . . . . . 33
2
Introduction
Le but de ce travail de recherche est de faire une petite introduction à la
théorie du contrôle, domaine à cheval entre les mathématiques et l’ingénierie.
En particulier mon travail s’est porté sur l’étude du pendule inversé et s’est
effectué en collaboration avec Antoine PERRIGOT (département Mécatro-
nique de l’ENS Rennes).
3
Première partie
Introduction aux systèmes de
contrôle
Le but de cette partie est de donner une brève introduction à la théorie
du contrôle, d’en donner une définition et de décrire ses objets d’études.
Définition 2 (Trajectoire)
On appelle trajectoire d’un système de contrôle toute fonction régulière
t ∈ I 7→ (x(t), u(t)) ∈ Rn × Rm qui satisfait (1) sur un intervalle I de R
non vide.
On rappelle la définition d’un point d’équilibre du système (1)
Définition 3
On appelle point d’équilibre du système ẋ(t) = f (x(t), u(t)) un couple
4
(xe , ue ) ∈ Rn × Rm satisfaisant
f (xe , ue ) = 0
Deuxième partie
Existence et unicité des solutions
Avant d’étudier les notions clés abordées ci-dessus, il faut avant tout s’as-
surer que les systèmes que nous étudions admettent des solutions et qu’elles
sont uniques. Pour cela, le théorème de Cauchy usuel ne suffit pas toujours,
c’est ce que nous allons voir.
5
— ∀x ∈ Ω, t → f (t, x) est continue.
On appelle solution du problème de Cauchy (2) tout couple (J, x), où
J ⊂ I est un intervalle tel que t0 ∈ J, et où x : J → Ω est une application
absolument continue telle que pour tout t ∈ J
Z t
x(t) = x0 + f (s, x(s))ds.
t0
˜ x̃),
Une solution (J, x) est dite maximale si pour tout autre solution (J,
˜
on a J ⊂ J et x = x̃ sur J˜
6
L’ensemble des contrôles u considérés est l’ensemble des applications mesu-
rables et localement bornées sur I, à valeurs dans Ω ⊂ Rm .
Le théorème 5 nous assure que, pour tout contrôle u, le système (3) admet
une unique solution x : I → Rn absolument continue.
Soit M : I → Mn (R) la résolvante du système linéaire homogène ẋ =
A(t)x(t), définie par Ṁ (t) = A(t)M (t), M (0) = Id (si A(t) est constante,
alors M (t) = exp(tA)).
Prop 6
Soient un contrôle u et x0 ∈ Rn . L’unique solution de ẋ(t) = A(t)x(t) +
B(t)u(t) valant x0 à l’instant t = 0 est
Z t
x(t) = M (t)x0 + M (t)M (s)−1 B(s)u(s)ds.
0
7
Troisième partie
Contrôlabilité d’un système
1 Contrôlabilité d’un système non linéaire
Dans cette partie, on considère à nouveau le système de contrôle non
linéaire (1)
ẋ(t) = f (x(t), u(t))
x(0) = x0
Définition 7 (Ensemble accessible)
L’ensemble des points accessibles à partir de x0 en un temps T>0 est
défini par : Acc(x0 , T ) := {xu (T )/u ∈ L∞ ([0, T ], Ω)}, où Ω est un sous-
ensemble de Rm .
xu est la solution du système (1) associée au contrôle u.
Définition 8 (Contrôlabilité)
Le système (1) est dit contrôlable en temps T>0 si, et seulement si,
Acc(x0 , T ) = Rn .
Autrement dit, pour tous états x0 , x1 ∈ Rn , il existe un contrôle u qui
amène le système de l’état x(0) = x0 à l’état x(T ) = x1 , ie, tel que la
solution du problème de Cauchy
ẋ(t) = f (x, u(t))
x(0) = x0
vérifie x(T ) = x1 .
8
Le théorème suivant permet de déduire des résultats de contrôlabilité
locale à partir de l’étude du système linéarisé. Ce résultat se déduit du théo-
rème de contrôlabilité des systèmes linéaires 15 que nous allons étudier dans
la suite.
Avant d’énoncer le théorème, on définit ce qu’est le système linéarisé en
un point d’équilibre d’un système de contrôle.
Définition 10 (Système linéarisé)
Soit (xe , ue ) un point d’équilibre du système (1). Le système de contrôle
linéarisé au point (xe , ue ) du système ẋ = f (x, u) est le système de
contrôle linéaire
∂f ∂f
ẋ(t) = (xe , ue )x(t) + (xe , ue )u(t)
∂x ∂u
2
On introduit la notion d’intégrale première qui donne une condition sur
la non contrôlabilité des systèmes non linéaires.
Définition 12 (Intégrale première)
Une fonction régulière R×Rn 3 (t, x) 7→ h(t, x) ∈ R est appelée intégrale
première du système (1) si elle est constante le long de toute trajectoire
du système.
Une intégrale première est dite triviale si c’est une fonction constante sur
R × Rn .
9
Supposons que (1) admette une intégrale première non triviale et soit
contrôlable. Alors il existe T > 0 tel que pour tout x0 , x1 ∈ Rn et tout
instant initial t, une trajectoire reliant x0 à x1 sur [t, t + T ]. Autrement dit
h(t, x0 ) = h(t + T, x1 ).
h est donc une fonction périodique du temps et indépendante de x. La dérivée
∂h
de h le long des trajectoires du système se réduit alors à . Par la remarque
∂t
précédente, cette dérivée est nulle. h est donc une constante ce qui contredit
l’hypothèse de départ. 2
Preuve du théorème 14 :
On remarque que
Im(C) = R(A, B)
:= V ect(Ai Bz ; i = 0, ..., n − 1, z ∈ Rm )
Montrons que Acc(0, T ) ⊂ R(A, B). Par définition,R t si x ∈ R(A, B), alors il
existe un contrôle u : [0, T ] → Rm tel que x(t) = 0 e(t−s)A Bu(s)ds.
D’après le théorème de Cayley-Hamilton, le polynôme caractéristique de A
10
annule A. Or ce polynôme est un polynôme normalisé (ie, le coefficient de
plus haut degré vaut 1) de degré n, ce qui implique que An est une com-
binaison linéaire de I, ..., An−1 (nb : χA (X) = X n − tr(A)X n−1 + ... +
(−1)n detA). Par conséquent, pour tout j ≥ 0, Aj est une combinaison li-
néaire de I, ..., An−1 et laisse donc invariant l’espace vectoriel R(A, B).
D’autre part, pour tout s ∈ [0, T ], e(t−s)A) admet le développement suivant :
(t − s)k Ak
e(t−s)A = I + (t − s)A + ... + + ...
k!
e(t−s)A) laisse donc également invariant l’espace R(A, B). On a donc montré
que pour tout s ∈ [0, T ], e(t−s)A) Bu(s) ∈ R(A, B).
3 Systèmes semblables
Dans cette partie, on introduit la définition de systèmes semblables qui
nous permet d’étudier la contrôlabilité d’un système en se ramenant à un
système que l’on sait contrôlable.
11
Définition 16 (Systèmes semblables)
Les systèmes de contrôle linéaires x˙1 = A1 x1 +B1 u1 et x˙2 = A2 x2 +B2 u2
sont dits semblables s’il existe une matrice inversible P de taille n telle
que A2 = P A1 P −1 et B2 = P B1 .
Prop 17
La condition de Kalman est intrinsèque, i.e. (B2 , A2 B2 , ..., A2n−1 B2 ) =
P (B1 , A1 B1 , ..., An−1
1 B1 ).
En particulier, le rang de la matrice de Kalman est invariant par simili-
tude.
Quatrième partie
Génération et suivi de trajectoire
A présent, le système que l’on considère est le système de contrôle linéaire
suivant
ẋ(t) = Ax(t) + Bu(t),
x(0) = x0 .
L’étude de la contrôlabilité d’un système nous permet de savoir si l’on
peut atteindre un état x1 ∈ Rn quelconque en temps T donné en partant
d’un état initial x0 prescrit.
La question qui se pose alors est de savoir comment atteindre cet état.
Dans un premier temps, nous allons donner une méthode pour calculer
des contrôles en boucle ouverte. C’est ce que l’on appelle le problème de
génération (ou planification) de trajectoire.
Ensuite, nous verrons que ces contrôles en boucle ouverte ne marchent que
très rarement dans la pratique et qu’il faut rajouter un terme de correction.
C’est là qu’intervient la notion de suivi de trajectoire, ou stabilisation.
Dans une dernière partie, nous aborderons la notion de contrôle optimal,
voir [1] pour plus de détails.
4 Forme de Brunovsky
Le but de cette partie est d’introduire la notion de forme de Brunovsky
qui est très utile dans le calcul de contrôle. En effet, une fois le système mis
sous cette forme, on obtient un paramétrage explicite de toutes les trajec-
toires en fonction d’une certaine quantité y appelée sortie de Brunovsky. Et
on peut alors calculer facilement des contrôles u associés au système.
12
Théorème 18 (Forme de Brunovsky )
Si la matrice de Kalman est de rang n (ie si le système (3) est contrôlable)
et si B est de rang m, alors il existe un changement d’état x = M z (M
inversible de taille n × n) et un bouclage statique régulier u = Kz + N v
(N matrice inversible de taille m × m), tels que les équations du système
dans les variables (z, v) se mettent sous la forme suivante (m équations
différentielles d’ordre ≥ 1)
(α1 )
y1 = v1
(α2 )
y2 = v2
...
(αm )
ym = vm
13
le suivi de la trajectoire. C’est ce qu’on appelle la stabilisation : rendre le
système insensible à certaines perturbations.
Alors dès que les λk sont à partie réelle strictement négative, le bouclage
(αi −1) (αi −2)
vi = s1 yi − s2 yi + ... + (−1)αi −1 sαi yi
(αi )
assure la stabilité de yi = vi . En effet, les pôles du système bouclé sont
les λk .
Voir [1]. 2
Concrètement, on note yr la sortie de Brunovsky (ou sortie plate) associée
à la trajectoire de référence. Une fois que l’on s’est ramené à une écriture du
type y (α) = v, on stabilise le système autour d’une trajectoire en stabibilisant
la sortie de Brunovsky autour de la trajectoire correspondante par
v = yr(α) − a0 (y − yr ) − a1 (y (1) − yr(1) ) − ... − aα−1 (y (α−1) − yr(α−1) )
où on choisit les coefficients a0 , a1 , ..., aα−1 de manière à ce que le polynôme
X α +aα−1 X α−1 +...+a1 X+a0 ait toutes ses racines à partie réelle strictement
négative. Pour cela, on utilise par exemple le critère de Routh (voir §9).
6 Contrôle optimal
Si l’on revient au problème de génération de trajectoire initial, on re-
marque qu’il n’y a pas unicité des contrôles u permettant de réaliser la tra-
jectoire voulue. La question qui se pose alors est : existe-t-il un contrôle qui
joigne l’état x0 à l’état x1 et qui minimise une certaine énergie ?
14
C’est ce qu’on appelle le problème de contrôle optimal.
Dans la suite, nous n’allons aborder qu’un seul type de contrôle optimal,
mais cette notion peut se généraliser. On peut minimiser n’importe quelle
fonctionnelle C(u) sous certaines conditions (voir [1]).
Théorème 20 (Contrôle minimal )
Soit G ∈ Mn (R) la matrice définie par
Z T
G= e(T −s)A BB > (e(T −s)A )> ds
0
15
Z T
E(ū + (u − ū)) = E(ū) + h(e(T −s)A B)> G−1 x1 , u(s) − ū(s)ids + E(u − ū)
0
Z T
= E(ū) + hG−1 x1 , e(T −s)A B(u(s) − ū(s))ids + E(u − ū)
0
Par ailleurs, les trajectoires associées aux contrôles u et ū ayant les mêmes
extrémités 0 et x1 , on a d’après la proposition 6,
Z T
e(T −s)A B(u(s) − ū(s)) = 0
0
Cinquième partie
Application au pendule inversé
7 Le pendule inversé
7.1 Introduction
Le pendule inversé est un pendule simple dont la masse est située en
l’air. Il présente une position d’équilibre instable en position verticale, cette
position est maintenue par le contrôle d’un chariot mobile.
Une application simple qui à la portée de tous est de faire tenir en équi-
libre un stylo sur son doigt. La seule différence étant que dans le cas du
pendule inversé on ne bouge que dans le plan.
Dans notre cas, nous allons étudier ce système pour mettre en applica-
tions la théorie sur les systèmes de contrôle que nous venons de voir. Mais
dans la pratique l’étude du pendule inversé a de nombreux intérêts notam-
ment en robotique avec le Segway.
16
Figure 3 – Schéma du pendule inversé.
Notations :
• θ : angle formé entre la tige et la verticale
• m : masse du pendule
• l : longueur de la tige
• g : accélération de la pesanteur
• F : force extérieure, ou contrôle (noté u)
• M : masse du chariot
Dans notre étude, le système part de l’état initial (x, ẋ, θ, θ̇) = (0, 0, δθ, 0)
(avec δθ petit) pour arriver au point d’équilibre (x, ẋ, θ, θ̇) = (D, 0, 0, 0).
Autrement dit, on souhaite amener le pendule d’une position initiale qui
n’est pas tout à fait à la verticale, à une position d’équilibre.
17
En appliquant le PFD sur l’ensemble pendule + chariot projeté horizontale-
ment, on obtient une première équation
Ẋ = AX + Bu,
X0 = (0, 0, δθ, 0)>
0 1 0 0 0
x 0 mg 1
ẋ 0 0
avec X =
, A = M
, B = M
θ 0 0 0 1
0
(m + M )g 1
θ̇ 0 0 0
Ml Ml
mg
1
0 M 0 M 2l
1 mg
0 M 2l
0
La matrice de Kalman associée à ce système est C = M (m+M )g ,
1
0 Ml 0 M 2 l2
1 (m+M )g
Ml 0 M 2 l2
0
qui est de rang 4.
18
D’après le corollaire 15, le système linéarisé est contrôlable. Et donc le
système réel (c’est-à-dire le système non linéaire) est localement contrôlable
au point d’équilibre donné.
8 Génération de trajectoire
D’après le paragraphe précédent, il existe des contrôles permettant de
relier X0 à Xf = (D, 0, 0, 0)> . On cherche maintenant à déterminer certains
de ces contrôles.
Pour cela, on va déterminer dans un premier temps un contrôle quel-
conque en boucle ouverte (ie qui ne prend pas en compte la rétroaction),
puis on déterminera le contrôle optimal étudié précédemment (cf §6). En-
fin, dans un troisième temps, nous étudierons la stabilisation du système en
donnant un contrôle en boucle fermée.
On pose
y1 = x − lθ,
y = y˙1 = ẋ − lθ̇,
2
y3 = y¨1 = −gθ,
(3)
y4 = y1 = −g θ̇,
2
v = y (4) = − g u − g (M + m) θ.
1
Ml Ml
Alors y1 est une sortie plate du système : y1 permet de paramétrer toutes
les trajectoires du système.
(3) (4)
Autrement dit, x, ẋ, θ, θ̇ et u s’écrivent au moyen de y1 , y˙1 , y¨1 , y1 et y1 .
19
1 0 −l 0
0 1 0 −l
avec M = .
0 0 −g 0
0 0 0 −g
On en déduit donc directement les trajectoires t → θ(t) et t → x(t) sans
intégrer, en connaissant uniquement la sortie plate y1 .
y(0) = −lδθ
ẏ(0) = 0 (
ÿ(0) = −gδθ y1 (T ) = D
et (k)
y (3) (0) = 0
y1 (T ) = 0, ∀k = 1, 2, 3, 4
y (4) (0) = − M + m g 2 δθ
Ml
N’importe quelle courbe [0, T ] 3 t 7→ y(t) satisfaisant ces conditions four-
nit une trajectoire pour le système.
On utilise par exemple une fonction polynomiale de classe C 4 obtenue à l’aide
des polynômes d’interpolation de Hermite, que l’on note yr (voir annexe 10).
On obtient alors une trajectoire de référence (xr , θr , ur ).
−M l (4) (2)
Le contrôle ur (t) = yr − (M + m)yr permet de réaliser le mou-
g
vement de (x, ẋ, θ, θ̇)(0) = (0, 0, δθ, 0) à (x, ẋ, θ, θ̇)(T ) = (D, 0, 0, 0).
20
Figure 4 – Simulations Scilab du contrôle de référence
21
Figure 5 – Simulations Scilab du contrôle optimal
22
On cherche maintenant la commande u correspondant à v :
Ml
u=− v + (M + m)gθ
g
On développe les calculs pour obtenir une expression de u au moyen des
grandeurs du système :
Ml
u = (M +m)gθ− [y4r
˙ +a1 (x−lθ−y1r )+a2 (ẋ−lθ̇−y2r )+a3 (−gθ−y3r )+a4 (−g θ̇−y4r )]
g
A présent, on cherche à déterminer les coefficients a1 , a2 , a3 et a4 vérifiant
la condition de placement de pôles et permettant d’éliminer le θ̇ dans l’ex-
pression de u. En effet, sur notre modèle réel, nous n’avons pas de capteur
pour mesurer la vitesse angulaire du pendule. Cependant, nous allons voir
que l’on ne peut pas se passer de cette mesure si l’on souhaite respecter la
condition de placement de pôles.
1er cas : a2 , a4 6= 0
l
On a alors a4 = −a2 . Montrons que cette condition est impossible car a2
g
et a4 doivent être de même signe.
1 −a3 −a1
−a4 −a2 0
a4 a3 + a2
b1 −a1 0 où b1 = −
a4
−b1 a2 − a1 a4
c1 0 0 où c1 =
b1
−a1 0 0
0 0 0
La table possède 5 lignes, elle est donc complète. D’après le théorème 23,
le polynôme qu’on considère a toutes ses racines à partie réelle strictement
négative si, et seulement si, a4 < 0, b1 > 0, c1 > 0 et a1 < 0.
On a alors :
a4 a3 + a2
b1 > 0 ⇔ − >0
a4
a4 a3 + a2
⇔ <0
a4
⇔ a4 a3 + a2 > 0(?)
23
et
c1 > 0 ⇔ −a2 b1 − a4 a1 > 0
a4 a3 + a2
⇔ a2 − a4 a1 > 0
a4
⇔ a2 (a4 a3 + a2 ) < a24 a1
Or a1 < 0, donc a2 (a4 a3 + a2 ) < 0, et par la condition (?), on obtient a2 < 0.
Conclusion :
On ne peut pas supprimer la mesure de θ̇. De plus, pour satisfaire les critères
de stabilité, il faut
2
Dans notre cas, on a pris par exemple a1 , a2 , a4 = −1 et a3 = −3.
24
Remerciements
Je remercie très chaleureusement ma maitresse de stage Karine
Beauchard, qui a su prendre le temps de s’occuper de moi alors qu’elle était
déjà très occupée. Je la remercie pour toutes les réponses qu’elle a su apporter
à mes questions tout en m’incitant à trouver ces réponses dans la littérature.
25
Références
[1] E. Trélat, Contrôle optimal : théorie et applications. Vuibert, 2005.
26
Sixième partie
Annexes
9 Critère de Routh
On considère le polynôme complexe
et on cherche une condition pour que ce polynôme ait toutes ses racines à
partie réelle strictement négative.
Définition 22 (Table de Routh)
La table de Routh est construite de la manière suivante
a0 a2 a4 a6 ... éventuellement complété par des 0
a1 a3 a5 a7 ... éventuellement complété par des 0
a1 a2 − a0 a3 a1 a4 − a0 a5
b1 b2 b3 b4 ... où b1 = , b2 = , ...
a1 a1
b1 a3 − a1 b2 b1 a5 − a1 b3
c1 c2 c3 c4 ... où c1 = , c2 = , ...
b1 b1
.. .. .. ..
. . . .
Le processus continue tant que le premier élément de la ligne est non nul.
La table de Routh est dite complète si elle possède n + 1 lignes dont le
premier coefficient est non nul.
Théorème 23
Tous les zéros de P sont à partie réelle strictement négative si, et seule-
ment si, la table complète existe, et les éléments de la première colonne
sont de même signe.
27
10 Interpolation de Hermite
On note Rn [x] l’ensemble des polynômes réels de degré au plus n :
(k)
P (k) (xi ) = fi , i = 0, 1, ..., m , k = 0, 1, ..., ni − 1.
L est une application linéaire de Rn [x] dans Rn+1 qui est injective. En
effet, si P est un polynôme de degré inférieur ou égal à n vérifiant LP = 0,
alors
P (k) (xi ) = 0, i = 0, 1, ..., m , k = 0, 1, ..., ni − 1.
Par conséquent, pour tout i = 0, ..., m, xi est une racine de P de multiplicité
ni .
P est donc un polynôme de degré ≤ n admettant n + 1 racines (comptées
m
P
avec multiplicité, nb : n = ni ). P est donc nul.
i=0
D’autre part, les espaces de départ et d’arrivée sont de même dimension,
dim(Rn [x])=dim(Rn+1 )=n + 1. L est donc un isomorphisme.
2
On a une formule explicite pour les polynômes d’interpolations de Her-
mite :
m nXi −1
(k)
X
P (x) = fi Lik (x)
i=0 k=0
Les polynômes Lik sont définis à partir des polynômes auxiliaires suivants
m
(x − xi )k Y x − xj nj
lik := , 0 ≤ i ≤ m, 0 ≤ k ≤ ni − 1
k! xi − xj
j=0
j6=i
28
On définit les polynômes Lik par récurrence descendante de la manière
suivante :
Li,ni −1 (x) := li,ni −1 (x), i = 0, 1, ..., m,
puis pour k = ni − 2, ni − 3, ..., 0,
i −1
nX
(ν)
Lik (x) := lik (x) − lik (xi )Liν (x)
ν=k+1
29
11 Programmes Scilab
11.1 Contrôle de référence
1 // ∗∗DONNEES INITIALES∗∗
2
3 l =0.2 // l o n g u e u r du p e n d u l e
4 M=0.5 // masse du c h a r i o t
5 m=0.5 // masse du p e n d u l e
6 g =9.81 // p e s a n t e u r
7 d e l t a =0.5∗ %pi /180 // a n g l e i n s t a n t i n i t i a l
8 D=1.5 // p o s i t i o n f i n a l e du c h a r i o t
9 t = [ 0 , 2 ] // p o i n t s d e v a l u t a t i o n , t ( i n i t i a l ) , t ( f i n a l )
10 e p s i l o n =0 // f r o t t e m e n t s u r l e c h a r i o t
11
16
17 // ∗∗INTERPOLATION DE HERMITE∗∗
18
21 p=zeros ( 2 , 5 ) // polynomes a u x i l i a i r e s
22 L=zeros ( 2 , 5 ) // polynomes g e n e r a l i s e s de Lagrange
23
24 fo r k = 0 : 4
25 p ( 1 , k+1)=(s−t ( 1 ) ) ^ ( k ) / f a c t o r i a l ( k ) ∗ ( ( s−t ( 2 ) ) / ( t (1) − t ( 2 ) ) ) ^ 5
26 p ( 2 , k+1)=(s−t ( 2 ) ) ^ ( k ) / f a c t o r i a l ( k ) ∗ ( ( s−t ( 1 ) ) / ( t (2) − t ( 1 ) ) ) ^ 5
27 end
28
29 L(1 ,5)= p ( 1 , 5 )
30 L(2 ,5)= p ( 2 , 5 )
31
32
36
30
39
43
52
63 // polynome d ’ i n t e r p o l a t i o n de Hermite
64 y=sum(L ( 1 , : ) . ∗ y0+L ( 2 , : ) . ∗ y1 ) // s o r t i e p l a t e i n t e r p o l e e
65
66
67
68 // ∗∗EXPRESSION DE LA COMMANDE U
69 ydot=derivat ( y )
70 y3=derivat ( derivat ( derivat ( y ) ) )
71 y2=derivat ( derivat ( y ) ) // d e r i v e e s e c o n d e de l a s o r t i e p l a t e
72 y4=derivat ( derivat ( derivat ( derivat ( y ) ) ) ) // d e r i v e e q u a t r i e m e de y
73
76
77
31
80
88 X0 = [ 0 ; 0 ; d e l t a ; 0 ]
89 t 0=0
90
91 T= [ 0 : 0 . 0 1 : 2 ] // i n t e r v a l l e d e v a l u a t i o n ( a b s c i s s e temps )
92
93
94 X=ode ( ’ rk ’ ,X0 , t0 , T, f )
95
96
97 // ∗∗GRAPHIQUES∗∗
98
99 c l f ()
100
101 subplot ( 1 2 1 )
102 plot (T, horner ( y ,T) , ’ b ’ ,T, horner ( u , T) , ’ r ’ )
103 legend ( ’ y ’ , ’u ’ ,1)
104 t i t l e ( " S o r t i e p l a t e e t c o n t r ô l e de r é f é r e n c e en f o n c t i o n du temps " )
105
106 subplot ( 1 2 2 )
107 plot (T,X( 3 , : ) , T,X( 1 , : ) )
108 t i t l e ( " T r a j e c t o i r e s de x e t de t h e t a en f o n c t i o n du temps " )
109 legend ( ’ theta ’ , ’x ’ ,2)
110
111 // ∗∗ A l l u r e d e s t r a j e c t o i r e s ∗∗
112
32
11.2 Contrôle optimal
1 // ∗∗DONNEES INITIALES∗∗
2
3 l =1 // l o n g u e u r du p e n d u l e
4 M=0.5 // masse du c h a r i o t
5 m=0.5 // masse du p e n d u l e
6 g =9.81 // p e s a n t e u r
7 d e l t a =0.5∗ %pi /180 // a n g l e i n s t a n t i n i t i a l
8 D=1.5 // p o s i t i o n f i n a l e du c h a r i o t
9 t = [ 0 , 2 ] // p o i n t s d e v a l u t a t i o n , t ( i n i t i a l ) , t ( f i n a l )
10 X0 = [ 0 ; 0 ; d e l t a ; 0 ]
11
15
16 function G1=F1 ( x )
17 G=expm( ( t (2) −x ) ∗A) ∗B∗B’ ∗ (expm( ( t (2) −x ) ∗A) ) ’
18 G1=G( 1 , 1 )
19 endfunction
20 function G2=F2 ( x )
21 G=expm( ( t (2) −x ) ∗A) ∗B∗B’ ∗ (expm( ( t (2) −x ) ∗A) ) ’
22 G2=G( 1 , 2 )
23 endfunction
24 function G3=F3 ( x )
25 G=expm( ( t (2) −x ) ∗A) ∗B∗B’ ∗ (expm( ( t (2) −x ) ∗A) ) ’
26 G3=G( 1 , 3 )
27 endfunction
28 function G4=F4 ( x )
29 G=expm( ( t (2) −x ) ∗A) ∗B∗B’ ∗ (expm( ( t (2) −x ) ∗A) ) ’
30 G4=G( 1 , 4 )
31 endfunction
32
33 function G5=F5 ( x )
34 G=expm( ( t (2) −x ) ∗A) ∗B∗B’ ∗ (expm( ( t (2) −x ) ∗A) ) ’
35 G5=G( 2 , 1 )
36 endfunction
37 function G6=F6 ( x )
38 G=expm( ( t (2) −x ) ∗A) ∗B∗B’ ∗ (expm( ( t (2) −x ) ∗A) ) ’
39 G6=G( 2 , 2 )
40 endfunction
33
41 function G7=F7 ( x )
42 G=expm( ( t (2) −x ) ∗A) ∗B∗B’ ∗ (expm( ( t (2) −x ) ∗A) ) ’
43 G7=G( 2 , 3 )
44 endfunction
45 function G8=F8 ( x )
46 G=expm( ( t (2) −x ) ∗A) ∗B∗B’ ∗ (expm( ( t (2) −x ) ∗A) ) ’
47 G8=G( 2 , 4 )
48 endfunction
49 function G9=F9 ( x )
50 G=expm( ( t (2) −x ) ∗A) ∗B∗B’ ∗ (expm( ( t (2) −x ) ∗A) ) ’
51 G9=G( 3 , 1 )
52 endfunction
53 function G10=F10 ( x )
54 G=expm( ( t (2) −x ) ∗A) ∗B∗B’ ∗ (expm( ( t (2) −x ) ∗A) ) ’
55 G10=G( 3 , 2 )
56 endfunction
57 function G11=F11 ( x )
58 G=expm( ( t (2) −x ) ∗A) ∗B∗B’ ∗ (expm( ( t (2) −x ) ∗A) ) ’
59 G11=G( 3 , 3 )
60 endfunction
61 function G12=F12 ( x )
62 G=expm( ( t (2) −x ) ∗A) ∗B∗B’ ∗ (expm( ( t (2) −x ) ∗A) ) ’
63 G12=G( 3 , 4 )
64 endfunction
65 function G13=F13 ( x )
66 G=expm( ( t (2) −x ) ∗A) ∗B∗B’ ∗ (expm( ( t (2) −x ) ∗A) ) ’
67 G13=G( 4 , 1 )
68 endfunction
69 function G14=F14 ( x )
70 G=expm( ( t (2) −x ) ∗A) ∗B∗B’ ∗ (expm( ( t (2) −x ) ∗A) ) ’
71 G14=G( 4 , 2 )
72 endfunction
73 function G15=F15 ( x )
74 G=expm( ( t (2) −x ) ∗A) ∗B∗B’ ∗ (expm( ( t (2) −x ) ∗A) ) ’
75 G15=G( 4 , 3 )
76 endfunction
77 function G16=F16 ( x )
78 G=expm( ( t (2) −x ) ∗A) ∗B∗B’ ∗ (expm( ( t (2) −x ) ∗A) ) ’
79 G16=G( 4 , 4 )
80 endfunction
81 G(1 ,1)= intg ( t ( 1 ) , t ( 2 ) , F1 )
34
82 G(1 ,2)= intg ( t ( 1 ) , t ( 2 ) , F2 )
83 G(1 ,3)= intg ( t ( 1 ) , t ( 2 ) , F3 )
84 G(1 ,4)= intg ( t ( 1 ) , t ( 2 ) , F4 )
85 G(2 ,1)= intg ( t ( 1 ) , t ( 2 ) , F5 )
86 G(2 ,2)= intg ( t ( 1 ) , t ( 2 ) , F6 )
87 G(2 ,3)= intg ( t ( 1 ) , t ( 2 ) , F7 )
88 G(2 ,4)= intg ( t ( 1 ) , t ( 2 ) , F8 )
89 G(3 ,1)= intg ( t ( 1 ) , t ( 2 ) , F9 )
90 G(3 ,2)= intg ( t ( 1 ) , t ( 2 ) , F10 )
91 G(3 ,3)= intg ( t ( 1 ) , t ( 2 ) , F11 )
92 G(3 ,4)= intg ( t ( 1 ) , t ( 2 ) , F12 )
93 G(4 ,1)= intg ( t ( 1 ) , t ( 2 ) , F13 )
94 G(4 ,2)= intg ( t ( 1 ) , t ( 2 ) , F14 )
95 G(4 ,3)= intg ( t ( 1 ) , t ( 2 ) , F15 )
96 G(4 ,4)= intg ( t ( 1 ) , t ( 2 ) , F16 )
97
98 G=G. / 1 0 ^ 1 7
99 Ginv=inv (G)
100 Ginv =10^( −17).∗ Ginv
101 Zf =[D ; 0 ; 0 ; 0 ]
102 Xf=Zf−expm(A∗ t ( 2 ) ) ∗ X0 // e t a t f i n a l
103
108 T= [ 0 : 0 . 0 1 : 2 ] // i n t e r v a l l e d e v a l u a t i o n ( a b s c i s s e temps )
109 Um=zeros ( 1 , length (T) )
110 fo r i =1: length (T)
111 Um( i )=mini (T( i ) )
112 end
113
114 c l f ()
115 subplot ( 1 2 1 )
116 plot (T,Um)
117 t i t l e ( ’Commande o p t i m a l e en f o n c t i o n du temps ’ )
118
119
35
123
124 t 0=0
125
126 T= [ 0 : 0 . 0 1 : 2 ] // i n t e r v a l l e d e v a l u a t i o n ( a b s c i s s e temps )
127
128
131 T= [ 0 : 0 . 0 1 : 2 ] // i n t e r v a l l e d e v a l u a t i o n ( a b s c i s s e temps )
132 subplot ( 1 2 2 )
133 plot (T, Xc ( 3 , : ) , T, Xc ( 1 , : ) )
134 t i t l e ( " T r a j e c t o i r e s de x e t de t h e t a en f o n c t i o n du temps " )
135 legend ( ’ theta ’ , ’x ’ ,2)
36