You are on page 1of 41

Commande robuste dun vhicule

sous-marin autonome
Emilie Roche
INRIA Rhne Alpes
Dpartement dAutomatique de Gipsa-lab
Co-tuteurs:
Daniel SIMON et Olivier SENAME
25 juin 2008

Rsum :
Ce rapport dveloppe une loi de commande robuste pour un vhicule
sous-marin autonome.
Un modle non linaire du sous-marin a t implment avec Matlab,
puis il a t linaris par une mthode tangentielle. Une modlisation LPV
polytopique a galement t ralis, en considrant la masse comme seul
paramtre variant.
Deux correcteurs robustes ont ensuite t synthtiss : lun par la mthode
H , lautre par la mthode LPV polytopique.
Des rsultats de simulation montrent les performances obtenues avec chacun des correcteurs, et notamment lamlioration apporte par la mthode
LPV.

Abstract :
This report present a robust control law for autonomous underwater vehicles (AUV).
A non linear model of the AUV was implemented on Matlab, then it has
been linearized by a tangential method. An LPV polytopique model was also
developed, considering the mass as the unique varying parameter.
Simulation results are provided to show performances obtained with both
controller, and specifically the improvement brought with the LPV method.

Table des matires


Introduction
1 Modlisation du vhicule sous-marin
1.1 Modle hydromcanique . . . . . . .
1.2 Mise en oeuvre sous Matlab . . . . .
1.2.1 S-function . . . . . . . . . . .
1.2.2 Cration du schma Simulink
1.2.3 Vrification du modle obtenu
1.3 Linarisation du modle . . . . . . .
1.4 Modle LPV polytopique . . . . . . .

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

4
. 4
. 7
. 7
. 8
. 8
. 10
. 11

2 Synthse dun correcteur H


13
2.1 Prsentation de la mthode . . . . . . . . . . . . . . . . . . . 13
2.2 Spcification des gabarits frquentiels . . . . . . . . . . . . . . 14
2.3 Rsultats obtenus . . . . . . . . . . . . . . . . . . . . . . . . . 15
3 Synthse dun correcteur LPV Polytopique
20
3.1 Explication de la mthode . . . . . . . . . . . . . . . . . . . . 20
3.2 Mise en uvre . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3 Rsultats obtenus . . . . . . . . . . . . . . . . . . . . . . . . . 21
Conclusion

25

Remerciements
Je tiens remercier Messieurs Daniel Simon et Olivier Sename, responsables de mon stage, pour mavoir fait confiance sur ce projet et pour mavoir
conseill et guid tout au long de ce travail. Sans oublier leur participation
au cheminement de ce rapport
Je voudrais aussi remercier les laboratoires qui mont accueillis pendant
mes 5 mois de stage : lINRIA Rhne Alpes et le GIPSA-lab, ainsi que toute
lquipe NeCS laquelle jai t intgre.
Merci galement mes camarades stagiaires, qui ont contribus faire de
stage un moment agrable, donc merci pour leur bonne humeur.

Introduction
Ce stage sinscrit dans le cadre du projet CONNECT (CONtrol NEtworked Cooperative sysTems). Ce projet a pour but de contrler un systme
multi-agents (compos de vhicules de surface (ASV) et de vhicules sousmarins (AUV)), interconnects par un rseau de communication sans fils.
Parmi les missions envisageables pour ce type de systme, on peut noter :
- la cartographie de fonds sous marins par une flottille dAUV.
- la localisation dune bote noire aprs un crash arien.
- la dtection dune source par suivi de gradient (eau douce, gaz,
produit chimique...).
Le but de ce stage est de concevoir une commande robuste afin dasservir
la vitesse longitudinale et laltitude dun sous-marin de type Aster , tout en
minimisant les vitesses de roulis et de tangage.

Fig. 1 Photo du sous-marin Aster ((c) Ifremer)


1

ROCHE Emilie

Commande robuste dun vhicule sous-marin autonome

Actuellement, la commande des vhicules sous-marins se fait principalement par la mthode par modes glissants : cette mthode permet de calculer
une loi de commande stabilisant un systme non linaire, dont la loi dvolution est trs mal connue (incertitude sur la modlisation du systme). Elle
permet galement de spcifier lors de la conception du contrleur, une trajectoire suivre par le systme boucl.
Lide est ici dutiliser un autre type de commande, qui nest pas faite
lorigine pour des systmes non linaires : la commande H qui permet,
grce des gabarits frquentiels, de fixer le comportement souhait en boucle
ferme. La robustesse apporte par ce type de correcteur peut ensuite suffire
garantir de bonnes performances sur le systme non linaire.
Depuis une dizaine dannes, la synthse H a t tendue au systmes
paramtres variants, notamment dans les domaines de laronautique et de
lautomobile.
Ce stage a t effectu au sein de deux laboratoires de recherche : lINRIA
Rhne Alpes et le laboratoire GIPSA-lab.
LINRIA (Institut National de Recherche en Informatique et Automatique) a pour vocation dentreprendre des recherches fondamentales et appliques dans les domaines des sciences et technologies de linformation et de la
communication (STIC). Linstitut assure galement un fort transfert de technologie en accordant une grande attention la formation par la recherche,
la diffusion de linformation scientifique et technique, au dveloppement,
lexpertise et la participation des programmes internationaux. LINRIA
dveloppe de nombreux partenariats avec le monde industriel et favorise le
transfert technologique et la cration dentreprises dans le domaine des STIC.
LINRIA Rhne Alpes est rparti sur 4 sites : Inovalle Meylan-Montbonnot
et campus Grenoble, domaine scientifique de la Doua et technopole Gerland
Lyon, comptant un total de 600 personnes : 200 chercheurs et enseignantschercheurs, 200 ingnieurs, techniciens, administratifs, 200 doctorants et postdoctorants (dont 45% trangers) et 136 stagiaires.
LINRIA Rhne Alpes est divis en 28 quipes de recherche : jai t
intgre lquipe NeCS (NEtworked Controlled Systems), dont le but est
de dvelopper une nouvelle approche de commande pour prendre en compte
lapparition de nouveaux composants sans fils de faible cot, laccroissement
de la complexit des systmes et la rpartition dans un rseau reconfiguration dynamique de capteurs et dactionneurs (rseaux de capteurs).
Cette quipe est commune au dpartement automatique du GIPSA-lab.
Le GIPSA-lab regroupe trois dpartements :
- Automatique
- Images et signal
2

ROCHE Emilie

Commande robuste dun vhicule sous-marin autonome

- Parole et cognition
GIPSA-lab est une unit mixte de recherche entre le CNRS (UMR 5216),
lINPG et lUJF.
Gipsa-lab sinvestit dans des recherches fondamentales sur la parole, la
perception, la cognition, le cerveau, le diagnostic et la commande des systmes. Il dveloppe des applications dans les secteurs de linteraction multimodale, des tlcommunications, de lnergie, de lenvironnement, des systmes embarqus, de la mcatronique-robotique, de la sant, des transports,
etc.
Leffectif total du GIPSA-lab est denviron 300 personnes, dont 137 permanents, une vingtaine de chercheurs invits, posts-doctorants et ATER, 140
doctorants et une soixante de stagiaires de master.
Le dpartement automatique est son tour divis en plusieurs quipes de
recherche : Systmes vnements discrets ; Systmes linaires et robustesse ;
Systmes non linaires et complexit ; Systmes biomcaniques ; Signal, automatique pour le diagnostic et la surveillance et Systmes commands en
rseaux (NeCS).
Dans une premire partie, on va raliser un modle non linaire du sousmarin, qui tient compte des aspects cinmatiques, dynamiques et hydrodynamiques du mouvement. Puis on va linariser ce modle de faon pouvoir
utiliser des outils de la commande robuste des systmes linaires.
Dans une deuxime partie, on va calculer un correcteur H et valuer ses
performances sur les systmes linaire et non linaire.
Puis dans une troisime partie, on va construire un autre type de correcteur, bas sur un modle LPV polytopique (Linaire Paramtres Variants),
qui permet de prendre en compte la conception des variations de paramtres
mal connus.

Chapitre 1
Modlisation du vhicule
sous-marin
1.1

Modle hydromcanique

Lanalyse dtaille de la modlisation dun sous-marin du mme type que


celui tudi a dj t effectue (Fossen, 1994; Santos, 1995). On donne ici
un rsum des rsultats obtenus. La modlisation du sous-marin ayant pour
but une implmentation en vue de simulation, on ne cherchera pas seulement
une quation donnant le comportement global du sous-marin, mais galement une description de chacun des comportements pris sparment. On fait
alors lhypothse que le comportement global est la somme de chacune des
composantes prises part.
Pour la modlisation du sous-marin, deux repres sont considrer :
- le repre li au vhicule : <(C, X, Y, Z) dont lorigine C (centre
de carne) peut tre diffrente du centre de gravit de vhicule. Le centre
de carne est une centre gomtrique, et donc ne change jamais, contrairement au centre de gravit qui peut tre modifi (cas de batteries mobiles par
exemple).
- le repre inertiel : <0 (O, X0 , Y0 , Z0 ) qui dans le cas de sous-marin
se dplaant faible vitesse peut tre pris comme tant li la Terre.
Pour dcrire
du vhicule, on utilisera un vecteur dtat
 le comportement

(6)
12 variables
.
(6)
reprsente
  la situation du vhicule exprime dans le rfrentiel inertiel

<0 : = 1 avec
2
4

ROCHE Emilie

Commande robuste dun vhicule sous-marin autonome


T
- 1 la position du vhicule : 1 = x y z .

T
- 2 lorientation du vhicule : 2 = .
Les angles , et reprsentent respectivement le roulis, le tangage et
le lacet du vhicule (utilisation de la paramtrisation par les angles dEuler),
comme le montre la figure suivante :
X0

Y0
Y0

X0

Z0

Z0

Fig. 1.1 Dfinition des angles (roulis), (tangage), et (lacet).


 

reprsente le torseur vitesse : = 1 exprim dans le repre local du


2
vhicule <. Les variables 1 et 2 sont respectivement les vitesses linaires et
les vitesses angulaires (drives premires des vecteurs 1 et 2 au change
T

T
ment de repre prs) et sont notes : 1 = u v w et 2 = p q r .
Pour dcrire le comportement du systme, on spare lanalyse en deux
parties : la cinmatique (aspects gomtriques du mouvement) et la dynamique (effets des forces et des moments sur le mouvement). Le dtail des
quations est donn en annexe (Annexe 1).
Ltude complte permet daboutir au systme dynamique suivant :
M = G() + D() + g + p + u

(1.1)

= Jc (2 )
o les paramtres de lquation 1.1 correspondent :
- M est la matrice dinertie. Elle est compose de 2 termes : Md , la
matrice dinertie due la dynamique du systme et Ma , matrice dinertie
deau ajoute, dont les paramtres sont issus de modles semi-empiriques
(erreur pouvant aller jusqu 50 70%).

ROCHE Emilie

Commande robuste dun vhicule sous-marin autonome

- G() reprsente laction des forces de Coriolis et des forces centrifuges. Il est galement compos de deux termes : Gd d aux forces dynamiques, et Ga d aux forces hydrodynamiques (calcules partir des coefficients de la matrice dinertie deau ajoute).
- D() est la matrice des coefficients damortissement hydrodynamique (galement issue destimation donc la connaissance est trs approximative).
- g est le vecteur des force de gravit et de la pousse dArchimde.
- u reprsente les forces et moments gnrs par les actionneurs du
vhicule, et dpend bien videment du type dactionneur que possde lengin.
Dans notre cas, le sous-marin possde une hlice pour commander la vitesse
longitudinale (dont la commande est fournie sous forme de pousse Qc ) ainsi
que des ailerons :
- deux ailerons horizontaux lavant du vhicule (plans canards les ailerons droits et gauches sont commands avec le mme angle 1 ).
- deux ailerons horizontaux larrire (angle 2 ).
- deux ailerons verticaux larrire (angle 1 ).

Fig. 1.2 Dfinition des angles de commande pour les plans canards ( lavant) et les
ailerons horizontaux arrires
Remarque : La modlisation des gouvernes ainsi que des efforts hydrodynamiques (dtaille en annexe) nest valable que pour un angle dincidence
infrieur 20 degrs (langle dincidence reprsente linclinaison du sousmarin relativement au fluide en mouvement). Au del la force de portance
nagit plus et il y a "dcrochage".
- p reprsente les forces et moments dus aux perturbations (diffrentes densits de leau de mer, courants marins...) considrs nuls dans notre
modle.
- Jc (2 ) est la matrice de passage du rfrentiel local <(C, xyz) au
J ( ) 03x3
repre inertiel (li la terre) <0 (O, X0 Y0 Z0 ) : Jc (2 ) = c1 2
03x3 Jc2 (2 )
6

ROCHE Emilie

1.2

Commande robuste dun vhicule sous-marin autonome

Mise en oeuvre sous Matlab

Il existe dj un modle de sous-marin cod en C, presque identique


laster ). Pour pouvoir par la suite utiliser des outils disponibles uniquement
sous Matlab (synthse de correcteur H ), il est ncessaire de disposer dun
modle utilisable sous Matlab.
Pour raliser ce modle, on va utiliser des S-functions, qui permettent
dutiliser un programme en langage C depuis un schma Simulink (ce qui me
permettra de reprendre des morceaux des programmes dj existants.

1.2.1

S-function

Une S-function est un bloc dfini sous Matlab-Simulink qui permet


lutilisateur de dfinir lui-mme un algorithme excutable. Elle peut tre
code en langage Matlab (sous forme de M-file) ou en langage C (sous forme
de C MEX-file). Cest cette deuxime solution qui a t utilise.
Une S-function est compose de plusieurs fonctions qui permettent de
passer des informations importantes dans le schma Simulink :
? static void mdlInitializeSizes(SimStruct *S) permet de dfinir le nombre dentres et de sorties qui devrait tre connect au bloc, et de
vrifier que ce nombre est bien respect. Elle permet galement de vrifier le
nombre de paramtres.
? static void mdlInitializeSampleTimes(SimStruct *S) sert dfinir si la fonction est continue ou discrte (dans le cas de fonction discrte,
cest ici quil faut dfinir la priode dchantillonnage).
? static void mdlOutputs(SimStruct *S, int_T tid) ralise lalgorithme souhait : il faut rcuprer les entres depuis Matlab, effectuer les
calculs ncessaires puis crire les sorties qui seront transmises au schma Simulink.
? static void mdlTerminate(SimStruct *S){} clos la S-function. Dans
notre cas aucune procdure particulire est ncessaire donc cette fonction restera vide (mais sa prsence est indispensable).

ROCHE Emilie

1.2.2

Commande robuste dun vhicule sous-marin autonome

Cration du schma Simulink

On utilise une S-function pour dcrire chacun des comportements prsents dans la partie "modle hydromcanique" (ainsi quen annexe). Voici la
correspondance entre les diffrentes fonctions code en C et les paramtres
de lquation 1.1 :
- changement de repre pour la matrice Jc (2 ).
- dynamique pour Gd () (le terme Ga est nglig.
- hydrodynamique pour D()
- Gamma_G pour g
- le bloc Gamma_u qui regroupe la propulsion de lhlice et les trois
ailerons : terme u .
- Minertinv reprsente linverse de la matrice dinertie M .
Il suffit ensuite de relier les blocs Simulinks de faon obtenir le comportement global du sous-marin : voir figure 1.3

Fig. 1.3 Schma simulink


Pour faciliter limplmentation, on calcule sparment les vecteurs et
puis on recombine les variables de faon avoir une forme plus classique :
[x x y y ]T

1.2.3

Vrification du modle obtenu

On ne dispose pas de donnes permettant une comparaison avec un modle dj existant. De plus, les coefficients utiliss pour la modlisation tant
fournis par lIfremer (fabriquant du sous-marin) on les supposera exacts.

ROCHE Emilie

Commande robuste dun vhicule sous-marin autonome

La vrification consistera donc contrler que le comportement du systme ne soit pas aberrant. Pour cela, on ralise quelques tests simples :
? Essai vitesse nulle : On part dun tat initial nul, on applique une vitesse nulle. Le sous marin reste immobile, donc il est parfaitement quilibr.
? Essai vitesse constante : on part dun tat initial nul et on applique
en t = 0 un chelon de pousse correspondant une vitesse longitudinale
u de 1m/sec. Le rsultat obtenu est correct : u passe de 0 1m/sec en 40
secondes, la position x varie linairement avec une pente de 1m/sec (aprs le
transitoire). Evolution inattendue : petite variation de laltitude z (de lordre
de 5.3cm en 100 secondes), surement due un lger dcalage du point dapplication de la pousse de lhlice par rapport au centre dinertie.
? Essai vitesse constante et plan canard : On part dun tat initial nul
sauf pour la vitesse longitudinale gale u0 (1m/sec) et on applique un chelon langle dincidence des plans canards 1 de 0.1 radians. On observe une
variation de laltitude z de lordre de 30m en 100sec (cette valeur est obtenue
pour des gouvernes exagrment grande ; un angle de braquage positif fait
monter le sous-marin donc z diminue) ainsi quune petite variation de langle
de tangage (environ 0.04 radian). Du fait de la force de traine due aux
gouvernes, on observe galement une diminution de u de 0.025m/sec.
? Essai vitesse constante et gouverne arrire horizontale : on applique
la mme variation que prcdemment mais sur 2 : on observe la mme volution que prcdemment (variation daltitude z, modification de la vitesse
u), mais dans le sens inverse (le sous-marin descend donc z augmente). En
effet, comme cette gouverne est situe de lautre ct du centre de gravit,
pour un angle de braquage positif, le sous-marin descend. Les dimensions
des deux gouvernes tant peu prs identiques, les volutions sont du mme
ordre de grandeur.
? Essai avec braquage des 2 ailes horizontales (avant et arrire) : on peut
distinguer deux cas intressant : les ailes ont le mme braquage ou des braquages opposs.
Dans le cas ou les ailes ont le mme angle de braquage, si langle est
positif (respectivement ngatif), le sous-marin remonte vers la surface (respect. descend), mais avec un angle de tangage presque nul. Par exemple si
on braque les deux gouvernes avec des angles 1 = 2 = 0.1rad on obtient
une variation daltitude de 3.3m en 100 secondes avec un angle de tangage
= 0.013rad.
9

ROCHE Emilie

Commande robuste dun vhicule sous-marin autonome

3.5

0.01

0.005

2.5

0.005

1.5

0.01

0.015

0.5

0.02

0
0

10

20

30

40

50

60

70

80

90

0.025
0

100

10

20

30

40

50

60

70

80

90

100

Fig. 1.4 Position z et angle de tangage pour des angles de braquage gaux (0.1 radian)
Dans le cas ou les angles de braquage sont opposs, (cest--dire que les
deux ailes tendent faire voluer le sous marin dans la mme direction), le
dplacement se fait dans le sens attendu, avec deux fois plus dintensit que
si une seule aile est braque. Le mouvement se fait alors avec un angle de
tangage non nul ( ' 0.8rad)
0.9

10

0.8

0.7
10

0.6

20

0.5

30

0.4
0.3

40

0.2
50

0.1
60
70
0

0
10

20

30

40

50

60

70

80

90

100

0.1
0

10

20

30

40

50

60

70

80

90

100

Fig. 1.5 Position z et angle de tangage pour des angles de braquage opposs (0.1 et
-0.1 radian)

? Essai avec un angle de roulis puis un angle de tangage non nul : dans les
deux cas, aprs un temps trs court, le systme revient un angle de roulis
ou de tangage nul.

1.3

Linarisation du modle

Pour linariser le modle prcdemment obtenu, on utilise la mthode


suivante de linarisation tangentielle :
Soit la fonction f : f (x1 , x2 ) que lon souhaite linariser autour de (x10 , x20 )
alors :


f
f
Flin = f (x10 , x20 ) +
x1 +
x2
(1.2)
x1 x1 ,x2
x2 x1 ,x2
0

10

ROCHE Emilie

Commande robuste dun vhicule sous-marin autonome

Dans notre cas, la fonction f dpend des 12 variables dtat ainsi que des
quatres commandes (1 (braquage des plans canards), 2 (braquage des ailerons arrires horizontaux), 1 (braquage des ailerons arrires verticaux), Qc
(rfrence de pousse pour lhlice)) .
Cela mne une reprsentation dtat de la forme :

x(t)

= Ax(t) + Bu(t) + E
(1.3)
y(t) = Cx(t) + Du(t)
avec
- x ltat du systme : x = [x u y v z w p q r]T .
- u les commandes : u = [1 2 1 Qc ]T .
- y les sorties mesures. dans un premier temps on peut supposer que
lensemble des sorties est mesures donc y = x.
Le code Matlab correspondant aux matrices A, B, C, D et E est donn
en annexe (voir Annexe 2).
Pour vrifier la linarisation obtenue, on effectue quelques simulations. Il
savre que la plus grande diffrence entre le modle non-linaire et le modle
linaris se situe au niveau des gouvernes. Le comportement des deux systmes est quasiment identique pour une mme commande de pousse Qc ; en
revanche, un mme angle de braquage des gouvernes (que ce soit 1 ou 2 )
produit des variations daltitude diffrentes. En effet lors de la linarisation,
la force de traine a totalement disparu, et la force de portance nest plus
relie langle dincidence de lAUV, ce qui entraine un mouvement plus
important que prvu suivant les axes Ox (pas de diminution de la vitesse
longitudinale u) et Oz (si laile braque est horizontale).

1.4

Modle LPV polytopique

Le principe est dutiliser un outil de la commande des systmes linaires


pour commander un systme non linaire. On peut approximer le comportement du systme non linaire par un systme Linaire Paramtres Variants
(LPV) cest--dire un systme o les matrices A, B, C et D (reprsentes
dans lequation 1.4) varient en fonction dun ou plusieurs paramtres ().

x(t)

= A(())x(t) + B(())u(t)
(1.4)
y(t) = C(())x(t) + D(())u(t)
Dans le cas o on peut borner a priori les variations de ces paramtres
entre min et max , on peut construire un modle valable dans toute la
11

ROCHE Emilie

Commande robuste dun vhicule sous-marin autonome

plage de variation. Si les paramtres sont mesurables en ligne, on peut alors


construire un correcteur qui sadapte en ligne ces paramtres, donc un
correcteur LPV . Le principe de la mthode (pour plus dexplication, voir
chapitre 3) est de construire un polytope (ensemble convexe) dont les sommets correspondent aux combinaisons des bornes minimales et maximales
des paramtres variants. Ensuite, une combinaison linaire de ces modles
permet dobtenir un modle valable pour une certaine valeur de chacun des
paramtres (ce qui suppose une estimation des paramtres).
Pour le systme 1.4, si on considre un seul paramtre variant [min ,
max ], on construit deux systmes sommets dont les matrices sont {Amin ,
Bmin , Cmin , Dmin } et {Amax , Bmax , Cmax , Dmax }.
Pour nimporte quelle valeur de comprise entre min et max , on a alors :

A() = 1 Amin + 2 Amax
(1.5)
1 + 2 = 1
Ce type de modle peut tre intressant pour prendre en compte lincertitude sur les paramtres hydrodynamiques (qui sont connus avec une erreur
allant jusqu 70%). Malheureusement, il y a trop de paramtres pour pouvoir appliquer la mthode polytopique (14 paramtres ce qui ammnerait
la construction dun polytope de 214 sommets).
On choisit donc, dans un premier temps, dappliquer cette mthode pour
une variation de la masse, qui est lun des paramtres influanant le plus
le comportement du systme. Cette variation sera de + ou 20% de la
masse nominale. Le modle linaire obtenu lors de la phase prcdente tant
linaire vis--vis de la masse, la construction du modle LPV polytopique
est trs simple : on calcule les matrices dtat (A et B, les matrices C et D
tant indpendantes de la masse) pour les deux valeurs extrmes de la masse
(Mmin et Mmax ). Ensuite, pour une valeur dtermine de la masse (M ) on
calcule la combinaison linaire :

AM = 1 AMmin + 2 AMmax
avec
(1.6)

M Mmin
Mmax M
1 = Mmax Mmin et 2 = Mmax Mmin

12

Chapitre 2
Synthse dun correcteur H
2.1

Prsentation de la mthode

Le principe de la commande H est de spcifier des performances en


boucle ferme grce des gabarits frquentiels, placs des endroits spcifiques dans la boucle de commande (suivant la fonction de sensibilit que lon
cherche modifier).
Par exemple, pour traiter un problme dasservissement, il faut agir sur
la fonction S = /y, et donc placer un poids We comme indique sur la figure
ci-dessous.
Pour imposer des contraintes sur les actions, il faut jouer sur la fonction
de sensibilit KS = u(action)/r, et donc placer un poids Wu comme montrer
figure 2.1.
On peut galement imposer un comportement pour certaines sorties msures : prsence du poids Wy .

We

Wu
du

r
+

dy
u

Wy

Fig. 2.1 Schma form par linterconnexion du modle du systme G, du correcteur K


et des diffrents poids We , Wu et Wy

Le problme pos de cette faon doit ensuite tre reformul sous la forme
13

ROCHE Emilie

Commande robuste dun vhicule sous-marin autonome

du problme standard :

z
y

K
Fig. 2.2 Problme standard
Cette formalisation sert tudier le transfert entre w (les entres exognes) et z (les sorties contrler) (y tant les sorties mesures et u les
entres contrles). P est le modle augment : il contient le modle, ainsi
que les poids Wi et les incertitudes (si il y en a).
On cherche alors dterminer le controleur K tel que :
kT (s)k

(2.1)

avec T (s) la fonction de transfert en boucle ferme du systme mis sous forme
standard.

2.2

Spcification des gabarits frquentiels

Pour calculer un correcteur H , il faut tout dabord dterminer une structure ainsi que des gabarits qui permettent de dfinir des spcifications (temps
de rponse en boucle ferme, erreur statique...). Dans notre cas, les spcifications respecter sont les suivantes :
? pour la vitesse longitudinale u, un suivi de consigne avec un temps
de rponse de lordre de 5 secondes, une erreur statique faible (102 ) et une
marge de module suffisante.
? pour la position z, un suivi de consigne avec la mme dynamique
que u (le sous-marin tant manuvr par des ailerons, on considrera que la
pente du terrain nest pas trop abrupte : une pente trop importante ne peut
pas tre franchie avec ce type dactionneurs).
? vitesse de tangage et de roulis aussi faible que possible (par exemple
102 ), ceci pour faciliter, par exemple, la reconstruction des cartes partir
des donnes collectes.
? respect des contraintes sur les actionneurs (angle de braquage des
gouvernes infrieur 0.5 radian ; pousse du propulseur infrieure Pmax =
14

ROCHE Emilie

Commande robuste dun vhicule sous-marin autonome

750).
Ceci nous permet de dduire la structure ncessaire :
- un poids We sur lerreur de poursuite pour les spcifications sur u
et z, les deux variables asservir.
- un poids Wu sur laction pour la contrainte sur les actionneurs.
- un poids Ws sur certaines des sorties (vitesse de roulis p et de
tangage q).
Tous les gabarits auront une forme diagonale, ce qui permet de spcifier des performances pour chaque variable du systme MIMO (Multi Inputs
Multi Outputs).


Weu 0
. Les coefficients sont
? We est une matrice de la forme :
0 Wez
des transferts du premier ordre :
1
s + wb
1
=
= s
Weu
Wez
+ wb
Ms
avec
- Ms = 2 pour avoir une marge de module suffisante
- wb = 0.46 pour avoir un temps de rponse de 5 secondes.
- = 0.01 pour voir une erreur de poursuite infrieure 1%
? Wu est fix 1 pour chaque actionneur car toutes les actions sont normalises.
? Ws est fix 102 pour les tats p (vitesse de roulis) et q (vitesse de
tangage)

Il suffit ensuite dutiliser la commande Matlab sysic (qui calcule le systme augment sous forme standard) et la fonction lmiHinf qui calcule le
correcteur H minimisant lcart entre le gabarit spcifi et les performances
garanties avec le correcteur (niveau dattnuation optimal opt ).

2.3

Rsultats obtenus

Pour connaitre a priori les performances du correcteur que lon vient de


calculer, on dispose de deux outils :
15

ROCHE Emilie

Commande robuste dun vhicule sous-marin autonome

- le nombre opt retourn par la fonction lmiHinf. Plus ce nombre


est proche de 1, mieux les gabarits seront respects (ce qui assure un comportement trs proche de celui dsir).
- les fonctions de sensibilit S (sur u et z) qui permettent de visualiser le comportement frquentiel du systme boucl obtenu.
Dans notre cas opt est trs lev (opt = 102) ce qui pourrait indiquer de
trs mauvaises performances en boucle ferme.
On trace ensuite les fonctions de sensibilit relatives au deux variables
contrler :

1/Weu
Sz

1/Wez

Su

Fig. 2.3 Fonction de sensibilit S sur u (vitesse longitudinale) et sur z, ainsi que les
gabarits correspondants
On saperoit que les gabarits ne sont pas respects (bien que les rsultats
obtenus ne soient pas si mauvais que la valeur de opt ne le laissait prsager) :
- pour u, le comportement dans les hautes frquences est conforme
au gabarit fix, en revanche, dans les basse frquence, il y a une augmentation
de la fonction S (20dB, soit une erreur statique de 10%). Pour amliorer
ce comportement, on diminue la valeur de u 104 .
- pour z, la bande passante et lerreur statique ne sont pas respectes.
La bande passante est trs proche de celle fixe ; de plus, le sous-marin naura
jamais de pente 90 degrs franchir, donc on conserve ce rsultat. Pour
lerreur statique, on diminue z 104 .
Afin damliorer les performances et respecter les gabarits spcifis, on va
modifier le problme rsoudre.
Le principe de la modification des gabarits est le suivant : puisque les gabarits ne peuvent pas tre respects, on augmente les contraintes. Le gabarits
modifi ne sera toujours pas respect (vu que le problme est plus complexe
rsoudre), mais les gabarits initiaux seront mieux respect.

16

ROCHE Emilie

Commande robuste dun vhicule sous-marin autonome

Les rsultats obtenus dans ce cas l respectent les spcifications fixes au


dpart pour u et z donc on conserve les gabarits suivants : figure : 2.4

1/Weu
1/Wez

Su

Sz

Fig. 2.4 Fonction de sensibilit S sur u (vitesse longitudinale) et sur z, ainsi que les
gabarits retenus
Dans ce cas l, on a une valeur opt encore plus importante : opt = 10640,
mais cette valeur correspond lloignement des fonctions de pondrations
par rapport aux gabarits fixs, qui sont plus contraignants que ncessaire.
On teste ce correcteur sur le systme linaris ainsi que sur le systme
non linaire. On obtient les rsultats suivants : figure : 2.5
Pour la vitesse longitudinale u : la consigne est constante et gale
1m/sec. La rponse du modle linaire est conforme nos attente, avec un
temps de rponse de 2 secondes (infrieur celui spcifi) et une erreur statique nulle. Sur le modle non linaire, on observe des variations de la vitesse,
mais qui restent dans un intervalle de + ou 5% autour de la valeur finale.
Le temps de rponse est de 6 secondes et lerreur statique maximale est de
1% de la valeur finale.
Pour la position z : la consigne est une rampe de pente 0.4m /sec (pente
maximum pouvant tre gravie par le sous-marin) sur les intervalles de temps :
[0; 100] et [200; 300] secondes et constante entre les deux. L encore la
rponse du systme linaire est celle attendue ; celle du systme non linaire
prsente un petit dpassement, mais reste trs proche de la consigne.
Pour la vitesse de roulis p : lobjectif de la commande est de minimiser
cette vitesse. Il est atteint puisque les variations sont de lordre de 105 , que
ce soit sur le modle linaire ou non linaire.
Pour la vitesse de tangage q : lobjectif est le mme que prcdemment.
Sur le modle linaire, on note une variation assez importante de cette vitesse ( allant jusqu 0.13 m/sec, soit 10 fois plus que ce qui tait demand.
En revanche, sur le systme non linaire, la rponse est meilleure, puisque
le maximum de variation est de 0.045 m/sec et que cette vitesse tend se
17

ROCHE Emilie

Commande robuste dun vhicule sous-marin autonome

Fig. 2.5 Rponses temporelles obtenues avec le correcteur H pour u (vitesse longitudinale), z (altitude), p (vitesse de roulis) et q (vitesse de tangage). Simulation sur le
modle linaire (en bleu) et sur le modle non linaire (en vert) ainsi que les consignes
(en rouge)

18

ROCHE Emilie

Commande robuste dun vhicule sous-marin autonome

stabiliser autour de zero.


Bien que le correcteur H ne soit pas conu pour fonctionner sur le
modle non linaire, la robustesse quil apporte permet dobtenir des performances dgrades pour certains tats, mais qui restent assez bonnes dans
lensemble.

19

Chapitre 3
Synthse dun correcteur LPV
Polytopique
Aprs avoir calcul un correcteur H qui fonctionne correctement sur
le modle non linaire, on cherche amliorer les performances obtenues,
surtout en terme derreur statique sur la vitesse longitudinale u et de dpassement sur laltitude z. Pour cela, on va calculer un correcteur sur le modle
LPV polytopique prsent dans le premier chapitre (voir 1.4).

3.1

Explication de la mthode

La commande LPV polytopique repose sur la synthse H . Pour la


rsolution, on utilise une fonction de Lyapunov V de la forme suivante :
V = ATcl P Acl (avec P une matrice dfinie positive : P = P T > 0 ; Acl est la
matrice dtat de la boucle ferme). La drive de V doit tre ngative pour
assurer la stabilit :
V = ATcl P + P Acl < 0
(3.1)
Dans le cadre des systmes LPV polytopique, on ne dispose plus dune
seule reprsentation dtat du systme, mais de 2N (avec N le nombre de
paramtres variants). Il y a donc 2N fonctions de Lyapunov vrifier. Pour
garantir la stabilit quadratique dans lensemble du polytope il faut trouver
une unique matrice P qui vrifie lensemble des 2N quations.
Par exemple dans le cas ou une seul paramtre varie, il y a deux matrices
A : A1 et A2 , on ne cherche pas vrifier :
 T
A1 P1 + P1 A1 < 0
(3.2)
AT2 P2 + P2 A2 < 0

20

ROCHE Emilie

mais :

3.2

Commande robuste dun vhicule sous-marin autonome

AT1 P + P A1 < 0
AT2 P + P A2 < 0

(3.3)

Mise en uvre

Dans un premier temps, on construit les deux systmes sommets pour


des masses Mmin et Mmax gales plus ou moins 20% de la masse nominale
M . On obtient les systmes Gmin = {Amin , Bmin , Cmin , Dmin } et Gmax =
{Amax , Bmax , Cmax , Dmax }.
Pour pouvoir comparer le correcteur LPV polytopique que lon va calculer
avec le correcteur H obtenu prcdemment, on garde les mmes pondrations We , Wu et Wy .
On utilise ensuite la fonction "lmiHinfPolytope (dveloppe par Charles
Poussot : http ://www.lag.ensieg.inpg.fr/cpoussot/index.html) qui calcule les
deux correcteurs correspondant chacun des sommets du polytope, ainsi que
le opt .

3.3

Rsultats obtenus

Comme pour le correcteur H , le opt obtenu est trs important : opt =


10633.
Dans un premier temps, on calcule le correcteur correspondant au modle
nominal :

Knominal = 1 Kmin + 2 Kmax


avec
(3.4)

Mnominal Mmin
Mmax Mnominal
1 = Mmax Mmin = 0.5 et 2 = Mmax Mmin = 0.5
On teste ce correcteur sur les modles linaires et non linaire, en appliquant les mmes consignes que prcdement : figure 3.1
Les rponses obtenues sont meilleures quavec le correcterur H :
Pour la vitesse longitudinale u : le modle linaire donne les mmes rsultats quavec le correcteur H . Sur le modle non linaire, on obtient de
meilleures performances : les changements de rfrence sur z sont mieux absorbs : les pics ont une amplitude plus faible (2.5%) et lerreur statique ne
dpasse pas 0.1%.
Pour laltitude z : le suivi de rfrence est meilleur quauparavant, le
dpassement qui tait visible au changement de rfrence a disparu.
Pour la vitesse de roulis p : elle reste trs faible, de lordre de 106 m/sec.
21

ROCHE Emilie

Commande robuste dun vhicule sous-marin autonome

Fig. 3.1 Rponses temporelles obtenues avec le correcteur LP V polytopique pour u


(vitesse longitudinale, z (altitude), p (vitesse de roulis) et q (vitesse de tangage). Simulation sur le modle linaire (en bleu) et sur le modle non linaire (en vert) ainsi que les
consignes (en rouge)

22

ROCHE Emilie

Commande robuste dun vhicule sous-marin autonome

Pour la vitesse de tangage q : les pics observs au changement de rfrence


pour z ont une amplitude un peu plus importante : 0.03 au lieu de 0.015 pour
le correcteur H , mais cette fois la vitesse se stabilise autour de zro.
De faon gnrale, on peut noter que dans le cas de la commande LPV
polytopique, les rsultats obtenus sur les deux modles sont beaucoup plus
proches que dans le cas de la commande H .
Prcdement, nous avons expliqu que cette technique tait utilisable si
on pouvait estimer ou mesurer le paramtre qui varie. Mais en simulant le
correcteur nominal (Knominal = 0.5 Kmin + 0.5 Kmax ) sur le systme
minimum et sur le systme maximum, on se rend compte que le systme est
stable, et les rsultats, bien que lgrement dgrads, restent trs proches
des spcifications fixes au dpart. Le correcteur calcul pour une borne de
lintervalle donne toujours des rsultats corrects sur la borne oppose. Voici
par exemple les courbes obtenues pour le correcteur Kmax sur le systme
Gmin : voir figure 3.2
On pourrait donc saffranchir de la mesure de la masse : en utilisant tout
le temps le correcteur nominal (calcul pour la masse nominale), on obtient
des rsultats satisfaisants.
En augmentant progressivement les variations de masse, on saperoit que
lon peut calculer un correcteur pour un cart de + ou 70% de la masse
nominale. Pour ces valeurs, les performances sont lgrement dgrades, mais
les spcifications sont respectes. Au del, on obtient un systme instable en
boucle ferme.

23

ROCHE Emilie

Commande robuste dun vhicule sous-marin autonome

Fig. 3.2 Rponses temporelles obtenues avec le correcteur LP V polytopique pour u


(vitesse longitudinale, z (altitude), p (vitesse de roulis) et q (vitesse de tangage). Simulation sur le modle linaire (en bleu) et sur le modle non linaire (en vert) ainsi que les
consignes (en rouge)

24

Conclusion
Dans ce rapport, aprs avoir construit les modles ncessaires au calcul
dune commande, nous avons ralis deux types de correcteurs robustes. Tout
dabord un correcteur H a t synthtis qui donne des rsultats trs satisfaisants sur le modle linaire, mais qui, sur le modle non linaire, laisse
apparaitre une erreur statique assez importante sur u (la vitesse longitudinale) et un dpassement sur z (laltitude).
Pour remdier ces imperfections, un deuxime type de correcteur a t
conu : un correcteur LPV polytopique. Avec ce correcteur, les rsultats obtenus sont meilleurs que prcdemment, puisque, en considrant une variation
de masse de + ou 20% par rapport la masse nominale, on obtient une
erreur statique quasiment nulle pour u et plus aucun dpassement pour z. De
plus, bien que cette mthode ncessite en thorie une mesure ou estimation
du paramtre variant, on sest aperu que le correcteur calcul sur le systme
nominal permettait de stabiliser le systme et de garantir les performances
spcifies lors de la synthse.
Dans lavenir lobjectif est dutiliser la mthode LPV polytopique pour
faire une synthse de correcteur priode variable. Ainsi, en fonction de
lutilisation des ressources, ou de la qualit de la commande, le correcteur
pourrait adapter la priode dchantillonnage, ainsi que les performances dsires, pour continuer avoir un systme stable en boucle ferme.

25

Annexe 1 : Dtails des quations rgissant le mouvement du sous-marin

Etude cinmatique
La trajectoire du vhicule est donne par la relation suivante :
1 = Jc1 (2 )1

(3.5)

o Jc1 (2 ) correspond la matrice de passage du rfrentiel inertiel (o sont


exprimes les vitesses linaires u, v et w) au rfrentiel local (o sont exprimes les positions x, y et z) :

cos cos sin sin cos sin cos sin cos cos + sin sin
Jc1 (2 ) = cos sin sin sin sin + cos cos sin cos sin cos sin
sin
cos sin
cos cos
(3.6)
De la mme faon, pour les vitesses angulaires :

avec

2 = Jc2 (2 )2

(3.7)

1 sin tan cos tan


cos
sin
Jc2 (2 ) = 0
0 sin / cos cos / cos

(3.8)

Etude dynamique
Dynamique dun corps rigide
On applique le premier principe de la dynamique au centre de gravit G
du sous-marin :
1 = mV G/<0
(3.9)
1 tant la somme des forces appliques au sous-marin.
On applique galement les lois de la mcanique des solides :

2 = H(C)
/<0 + VC (mVG )

(3.10)

avec H(C) = m(CG VC ) + IC 2 le moment cintique au point C.


Le dveloppement des calculs permet daboutir une relation du type :
Md = Gd () +

(3.11)

avec : Md la matrice dinertie due la dynamique du systme :

m
0
0
0
mzG myG

0
m
0
mz
0
mxG
G

0
0
m
myG mxG
0
Md =

0
mzG myG
Ixx
Ixy
Ixz

mzG
0
mxG Ixy
Iyy
Iyz
myG mxG
0
Ixz
Iyz
Izz

et Gd () le vecteur des forces de Coriolis et des forces centrifuges appliques


au vhicule :
"
#
03x3
mS1 + 2 CG
Gd () =

mS1 + 2 CG
S(IC 2 )
0
0

Gd () =
0

m(w + py qx )
G
G
m(v pzG + rxG )

0
0
0
m(w + pyG qxG )
0
m(u + qzG ryG )

0
0
0
m(v pzG + rxG )
m(u + qzG ryG )
0

0
m(w + pyG qxG )
m(v pzG + rxG
0
Ixz p Iyz q + Izz r
Ixy p Iyy q + Iyz r

m(w + pyG qxG )


0
m(u + qzG ryG )
Ixz p + Iyz q Izz r
0
Ixx p Ixy q Ixz r

Poids et pousse dArchimde


En ajoutant la contribution du poids (F = mg) et celle de la pousse
dArchimde (FA = g, etant le volume immerg) et en projetant dans
le repre local li au vhicule, on obtient le rsultat suivant :

(m ) sin

(m ) sin cos

(m

)
cos

cos

g () = g
(yg m yf ) cos cos (zg m zf ) cos sin

(zg m zf ) sin (xg m xf ) cos cos


(xg m xf ) cos sin + (yg m yf ) sin

Efforts hydrodynamiques
Ces forces et moments agissent sur tout corps en mouvement dans un
fluide suppos visqueux. Ils sont dus laction de la masse deau ajoute
ainsi quaux frottements visqueux du fluide sur le corps en mouvement. Ils
ne peuvent pas tre obtenus thoriquement et lestimation des coefficients est
trs mauvaise (marge de connaissance de 50 70%). Dune faon gnrale,
on peut formuler les efforts hydrodynamiques de la manire suivante :

m(v pzG + rxG )


m(u + qzG ryG )
0
Ixy p + Iyy q Iyz r
Ixx p + Ixy q + Ixz r
0

Force axiale :

Xu|u| u|u| + Xvr vr + Xwq wq

Force latrale :

Ywp wp + Yur ur + Yuv uv + Yup up + Yr|r| r|r| + Yr|v| r|v| + Yv|r| v|r| + Yv|v| v[v|

Force verticale :

Zuw uw + Zuq uq + Zvp vp + Zw|w| w|w| + Zw|q| w|q| + Zq|w| q|w| + Zq|q| q|q|

Moment de roulis :

Luv uv + Lur ur + Lup up + Lp|p| p|p|

Moment de tangage : Muw uw+Muq uq+Mpr pr+Mq|q| q|q|+Mw|q| w|q|+Mq|w| q|w|+Mw|w| w|w|
Moment de lacet :

Nuv uv+Nur ur+Nup up+Npq pq+Nr|r| r|r|+Nr|v| r|v|+Nv|r| v|r|+Nv|v| v|v|

avec :
? Xvr Xwq Ywp Yuv Zuw Zuq des termes de nature inertielle : ils correspondent la prise en compte de la masse deau ajoute lors de la drivation
de la vitesse.
? Xu|u| Yv|v| Zw|w| Yr|v| Yv|r| Zw|q| Zq|w| Nv|v| Mw|w| Yr|r| Zq|q| Nv|r| Nr|v|
Mw|q| Mq|w| Nr|r| Mq|q| des termes de traine.
? Yur Yuv Yup Zuw Zuq Luv Lur Lup Muw Muq Nuv Nur Nup des termes de
portance.
? Lp|p| est un terme damortissement en roulis.
Propulsion par lhlice
La propulsion principale de lengin est assure par une hlice place dans
laxe du vhicule. Une consigne sous forme de pousse est fournie par le correcteur,
p ce qui permet de calculer la vitesse de rotation des pales de lhlice :
N = consigne/P x 2.24.
Cette vitesse permet de calculer le coefficient davance : J = NVDaH avec
Va la vitesse davance ( Va = u + q zg ). On peut alors calculer le coefficient
de pousse : Kt = f (J, J 2 , J 3 ).
Reste maintenant calculer langle , dont dpend lexpression des efforts
Va
.
de propulsion : gamma = arctan 0.7N
DH
Lexpression des efforts de porpulsion tant assez complexe , elle ne sera
pas dtaille ici.
Forces dues aux gouvernes
Les gouvernes exercent deux forces : la force de portance fn normale
la surface de laileron et la force de traine ft , tangente la surfac dont les
expressions sont les suivantes :
fn = ( ) vr2 zb2

(3.12)

et
ft = (0.01 + 1.1 ( )2 vr2 (zb2 /2.5)

(3.13)

avec :
? : langle dinclinaison de la gouverne.
? : langle dincidence du sous-marin dans la direction considre.
? vr : la vitesse de leau sur laileron.
? zb2 : coefficient dpendant de la surface des gouvernes.
Il suffit ensuite de projeter ces forces sur les axes Ox et Oz pour les
gouvernes horizontales, et Ox et Oy pour les gouvernes verticales.

Annexe 2 : Dtails des matrices de la reprsentation dtat


%%
%
%
%

Systeme linearise
Etat X=[x; u; y; v; z; w; phi; p; theta; q; psi; r]
comande:U= [beta1, beta2, delta1, Qc]
[gouv_arriere_hor, gouv_avant, gouv_arriere_vert, propulsion]
beta10=0;
beta20=0;
delta10=0;
Qc0lin=0;
reflin=[beta10, beta20, delta10, Qc0lin];

%parametres:
Kt0=0.369516;
Kt1=0.490246;
Kt2=0.182464;
Kt3=0.391137;
Kt1u=Kt1/(2.24*Dh*sqrt(Qc0*Px));
Kt2u=Kt2*2*u0/(2.24^2*Dh^2*Qc0*Px);
Kt3u=Kt3*3*u0^2/(2.24^3*Dh^3*(Qc0*Px)^(3/2));
Kt1Qc=Kt1*u0/(2.24*Dh*sqrt(Qc0*Px));
Kt2Qc=Kt2*u0^2/(2.24^2*Dh^2*Qc0*Px);
Kt3Qc=Kt3*u0^3/(2.24^3*Dh^3*(Qc0*Px)^(3/2));
zb1prim = (paght2+paghb2)*zb1;
yd1prim = pagvh3 * yd1;
yd3prim = pagvb3 * yd3;
yd1pp = pagvh1 * yd1;
yd2pp = pagj1 * yd2;
yd3pp = pagvb1 * yd3;
%% model nominal
%vecteur correspondant au derivee de chacune des vitesses lineaires
et angulaires
Au=[ 0;%x
(2*Xuu*u0*A11+k0*Qc0*(-Kt1u+Kt2u-Kt3u)*A11);%u
0;%y
(Yuv*u0*A12+Luv*u0*A14+Nuv*u0*A16-u0*(yd3-yd1)*A12);%v
0;%z
(Zuw*u0*A13+Muw*u0*A15-u0*(zb2+zb1)*A13+PATS1*u0*zb2*A15+paght1*u0*zb1*A15);%w
((m_nominal-rho*delta)*g*A12-(Zg*m_nominal-Zf*rho*delta)*g*A14);%phi
(Yup*u0*A12+Lup*u0*A14+Nup*u0*A16);%p
(-(m_nominal-rho*delta)*g*A11-(Zg*m_nominal-Zf*rho*delta)*g*A15);%theta
(m_nominal*u0*A13+Zuq*u0*A13+Muq*u0*A15+k0*Qc0*Zg*(-Kt1u+Kt2u-Kt3u)*A11);%q
0;%psi
(-m_nominal*u0*A12+m_nominal*Zg*u0*A14+Yur*u0*A12+Lur*u0*A14+Nur*u0*A16)];
Bu=[(u0^2*zb1*A13+u0^2*zb1prim*A14-paght1*u0^2*zb1*A15);%beta1
(u0^2*zb2*A13-PATS1*u0^2*zb2*A15);%beta2
(u0^2*(yd3-yd1)*A12-u0^2*(yd1prim+yd3prim)*A14+(yd1pp+yd3pp)*u0^2*A16+A16*yd2pp/(rho+PI+Dh^2)...
...*(k0*Qc0*(Kt0-Kt1Qc+Kt2Qc-Kt3Qc)));%delta1
(k0*(Kt0-Kt1Qc+Kt2Qc-Kt3Qc+Qc0*(Kt1Qc/(2*Qc0)-Kt2Qc/Qc0+Kt3Qc*3/(2*Qc0)))*A11);%Qc
];
Av=[ 0;%x
(2*Xuu*u0*A21+k0*Qc0*(-Kt1u+Kt2u-Kt3u)*A21);%u
0;%y
(Yuv*u0*A22+Luv*u0*A24+Nuv*u0*A26-u0*(yd3-yd1)*A22);%v

0;%z
(Zuw*u0*A23+Muw*u0*A25-u0*(zb2+zb1)*A23+PATS1*u0*zb2*A25+paght1*u0*zb1*A25);%w
((m_nominal-rho*delta)*g*A22-(Zg*m_nominal-Zf*rho*delta)*g*A24);%phi
(Yup*u0*A22+Lup*u0*A24+Nup*u0*A26);%p
(-(m_nominal-rho*delta)*g*A21-(Zg*m_nominal-Zf*rho*delta)*g*A25);%theta
(m_nominal*u0*A23+Zuq*u0*A23+Muq*u0*A25+k0*Qc0*Zg*(-Kt1u+Kt2u-Kt3u)*A21);%q
0;%psi
(-m_nominal*u0*A22+m_nominal*Zg*u0*A24+Yur*u0*A22+Lur*u0*A24+Nur*u0*A26)];
Bv=[(u0^2*zb1*A23+u0^2*zb1prim*A24-paght1*u0^2*zb1*A25);%beta1
(u0^2*zb2*A23-PATS1*u0^2*zb2*A25);%beta2
(u0^2*(yd3-yd1)*A22-u0^2*(yd1prim+yd3prim)*A24+(yd1pp+yd3pp)*u0^2*A26+A26*yd2pp/(rho+PI+Dh^2)...
...*(k0*Qc0*(Kt0-Kt1Qc+Kt2Qc-Kt3Qc)));%deltA2
(k0*(Kt0-Kt1Qc+Kt2Qc-Kt3Qc+Qc0*(Kt1Qc/(2*Qc0)-Kt2Qc/Qc0+Kt3Qc*3/(2*Qc0)))*A21);%Qc
];
Aw=[ 0;%x
(2*Xuu*u0*A31+k0*Qc0*(-Kt1u+Kt2u-Kt3u)*A31);%u
0;%y
(Yuv*u0*A32+Luv*u0*A34+Nuv*u0*A36-u0*(yd3-yd1)*A32);%v
0;%z
(Zuw*u0*A33+Muw*u0*A35-u0*(zb2+zb1)*A33+PATS1*u0*zb2*A35+paght1*u0*zb1*A35);%w
((m_nominal-rho*delta)*g*A32-(Zg*m_nominal-Zf*rho*delta)*g*A34);%phi
(Yup*u0*A32+Lup*u0*A34+Nup*u0*A36);%p
(-(m_nominal-rho*delta)*g*A31-(Zg*m_nominal-Zf*rho*delta)*g*A35);%theta
(m_nominal*u0*A33+Zuq*u0*A33+Muq*u0*A35+k0*Qc0*Zg*(-Kt1u+Kt2u-Kt3u)*A31);%q
0;%psi
(-m_nominal*u0*A32+m_nominal*Zg*u0*A34+Yur*u0*A32+Lur*u0*A34+Nur*u0*A36)];
Bw=[(u0^2*zb1*A33+u0^2*zb1prim*A34-paght1*u0^2*zb1*A35);%beta1
(u0^2*zb2*A33-PATS1*u0^2*zb2*A35);%beta2
(u0^2*(yd3-yd1)*A32-u0^2*(yd1prim+yd3prim)*A34+(yd1pp+yd3pp)*u0^2*A36+A36*yd2pp/(rho+PI+Dh^2)...
...*(k0*Qc0*(Kt0-Kt1Qc+Kt2Qc-Kt3Qc)));%deltA3
(k0*(Kt0-Kt1Qc+Kt2Qc-Kt3Qc+Qc0*(Kt1Qc/(2*Qc0)-Kt2Qc/Qc0+Kt3Qc*3/(2*Qc0)))*A31);%Qc
];
Ap=[ 0;%x
(2*Xuu*u0*A41+k0*Qc0*(-Kt1u+Kt2u-Kt3u)*A41);%u
0;%y
(Yuv*u0*A42+Luv*u0*A44+Nuv*u0*A46-u0*(yd3-yd1)*A42);%v
0;%z
(Zuw*u0*A43+Muw*u0*A45-u0*(zb2+zb1)*A43+PATS1*u0*zb2*A45+paght1*u0*zb1*A45);%w
((m_nominal-rho*delta)*g*A42-(Zg*m_nominal-Zf*rho*delta)*g*A44);%phi
(Yup*u0*A42+Lup*u0*A44+Nup*u0*A46);%p
(-(m_nominal-rho*delta)*g*A41-(Zg*m_nominal-Zf*rho*delta)*g*A45);%theta
(m_nominal*u0*A43+Zuq*u0*A43+Muq*u0*A45+k0*Qc0*Zg*(-Kt1u+Kt2u-Kt3u)*A41);%q
0;%psi
(-m_nominal*u0*A42+m_nominal*Zg*u0*A44+Yur*u0*A42+Lur*u0*A44+Nur*u0*A46)];
Bp=[(u0^2*zb1*A43+u0^2*zb1prim*A44-paght1*u0^2*zb1*A45);%beta1
(u0^2*zb2*A43-PATS1*u0^2*zb2*A45);%beta2
(u0^2*(yd3-yd1)*A42-u0^2*(yd1prim+yd3prim)*A44+(yd1pp+yd3pp)*u0^2*A46+A46*yd2pp/(rho+PI+Dh^2)...
...*(k0*Qc0*(Kt0-Kt1Qc+Kt2Qc-Kt3Qc)));%deltA4
(k0*(Kt0-Kt1Qc+Kt2Qc-Kt3Qc+Qc0*(Kt1Qc/(2*Qc0)-Kt2Qc/Qc0+Kt3Qc*3/(2*Qc0)))*A41);%Qc
];
Aq=[ 0;%x
(2*Xuu*u0*A51+k0*Qc0*(-Kt1u+Kt2u-Kt3u)*A51);%u
0;%y
(Yuv*u0*A52+Luv*u0*A54+Nuv*u0*A56-u0*(yd3-yd1)*A52);%v
0;%z
(Zuw*u0*A53+Muw*u0*A55-u0*(zb2+zb1)*A53+PATS1*u0*zb2*A55+paght1*u0*zb1*A55);%w

((m_nominal-rho*delta)*g*A52-(Zg*m_nominal-Zf*rho*delta)*g*A54);%phi
(Yup*u0*A52+Lup*u0*A54+Nup*u0*A56);%p
(-(m_nominal-rho*delta)*g*A51-(Zg*m_nominal-Zf*rho*delta)*g*A55);%theta
(m_nominal*u0*A53+Zuq*u0*A53+Muq*u0*A55+k0*Qc0*Zg*(-Kt1u+Kt2u-Kt3u)*A51);%q
0;%psi
(-m_nominal*u0*A52+m_nominal*Zg*u0*A54+Yur*u0*A52+Lur*u0*A54+Nur*u0*A56)];
Bq=[(u0^2*zb1*A53+u0^2*zb1prim*A54-paght1*u0^2*zb1*A55);%beta1
(u0^2*zb2*A53-PATS1*u0^2*zb2*A55);%beta2
(u0^2*(yd3-yd1)*A52-u0^2*(yd1prim+yd3prim)*A54+(yd1pp+yd3pp)*u0^2*A56+A56*yd2pp/(rho+PI+Dh^2)...
...*(k0*Qc0*(Kt0-Kt1Qc+Kt2Qc-Kt3Qc)));%delta1
(k0*(Kt0-Kt1Qc+Kt2Qc-Kt3Qc+Qc0*(Kt1Qc/(2*Qc0)-Kt2Qc/Qc0+Kt3Qc*3/(2*Qc0)))*A51);%Qc
];
Ar=[ 0;%x
(2*Xuu*u0*A61+k0*Qc0*(-Kt1u+Kt2u-Kt3u)*A61);%u
0;%y
(Yuv*u0*A62+Luv*u0*A64+Nuv*u0*A66-u0*(yd3-yd1)*A62);%v
0;%z
(Zuw*u0*A63+Muw*u0*A65-u0*(zb2+zb1)*A63+PATS1*u0*zb2*A65+paght1*u0*zb1*A65);%w
((m_nominal-rho*delta)*g*A62-(Zg*m_nominal-Zf*rho*delta)*g*A64);%phi
(Yup*u0*A62+Lup*u0*A64+Nup*u0*A66);%p
(-(m_nominal-rho*delta)*g*A61-(Zg*m_nominal-Zf*rho*delta)*g*A65);%theta
(m_nominal*u0*A63+Zuq*u0*A63+Muq*u0*A65+k0*Qc0*Zg*(-Kt1u+Kt2u-Kt3u)*A61);%q
0;%psi
(-m_nominal*u0*A62+m_nominal*Zg*u0*A64+Yur*u0*A62+Lur*u0*A64+Nur*u0*A66)];
Br=[(u0^2*zb1*A63+u0^2*zb1prim*A64-paght1*u0^2*zb1*A65);%beta1
(u0^2*zb2*A63-PATS1*u0^2*zb2*A65);%beta2
(u0^2*(yd3-yd1)*A62-u0^2*(yd1prim+yd3prim)*A64+(yd1pp+yd3pp)*u0^2*A66+A66*yd2pp/(rho+PI+Dh^2)...
...*(k0*Qc0*(Kt0-Kt1Qc+Kt2Qc-Kt3Qc)));%delta1
(k0*(Kt0-Kt1Qc+Kt2Qc-Kt3Qc+Qc0*(Kt1Qc/(2*Qc0)-Kt2Qc/Qc0+Kt3Qc*3/(2*Qc0)))*A61);%Qc
];
Ax
Ay
Az
Aphi
Atheta
Apsi

=
=
=
=
=
=

[0
[0
[0
[0
[0
[0

1
0
0
0
0
0

0
0
0
0
0
0

0
1
0
0
0
0

0
0
0
0
0
0

0
0
1
0
0
0

0
0
0
0
0
0

0
0
0
1
0
0

0 0
0 0
-u0
0 0
0 1
0 0

0 0];
u0 0];
0 0 0];
0 0];
0 0];
0 1];

%matrice de la representation detat


As = [Ax; Au; Ay; Av; Az; Aw; Aphi; Ap; Atheta; Aq; Apsi; Ar];
%[beta1, beta2, delta1, Qc, 1]
Bs = [0 0 0 0; Bu; 0 0 0 0 ; Bv; 0 0 0 0 ; Bw; 0 0 0 0 ; Bp; 0 0 0 0 ; Bq; 0 0 0 0 ; Br];
Cs = eye(12);
Ds = zeros(12,4);
Eq = [u0;0; 0; 0; 0; (m_nominal-rho*delta)*g; 0; 0; 0; 0; 0; 0];

Annexe 3 : Rsultats de simulation avec le correcteur H : zooms

0.8

0.6

0.4

0.2

10

15

20

25

30

35

40

45

50

Fig. 3.3 u (vitesse longitudinale) obtenue en simulation avec le correcteur H sur


le modle linaire (en bleu) et sur le modle non linaire (en vert) ainsi que consigne (en
rouge)

42

41

40

39

38

37

36

35

34
90

95

100

105

110

115

120

125

130

135

140

Fig. 3.4 z (altitude) obtenue en simulation avec le correcteur H sur le modle


linaire (en bleu) et sur le modle non linaire (en vert) ainsi que consigne (en rouge)

Annexe 4 : Rsultats de simulation avec le correcteur LP V polytopique : zooms


1.4

1.2

0.8

0.6

0.4

0.2

10

15

20

25

30

35

40

45

50

Fig. 3.5 u (vitesse longitudinale) obtenue en simulation avec le correcteur LP V sur


le modle linaire (en bleu) et sur le modle non linaire (en vert) ainsi que les consignes
(en rouge)

45
40
35
30
25
20
15
10
5
0
5

20

40

60

80

100

120

Fig. 3.6 z (altitude) obtenue en simulation avec le correcteur LP V sur le modle


linaire (en bleu) et sur le modle non linaire (en vert) ainsi que les consignes (en rouge)

Annexe 5 : Correcteur LP V polytopique avec + ou - 70% de variation sur la masse

Fig. 3.7 Rponses temporelles obtenues avec le correcteur LP V polytopique pour u


(vitesse longitudinale, z (altitude), p (vitesse de roulis) et q (vitesse de tangage). Simulation sur le modle linaire (en bleu) et sur le modle non linaire (en vert) ; consigne en
rouge

Bibliographie
A. Pedro Aguiar, A. M. P. (2002). Dynamic Positioning and Way-Point
Tracking of Underactuated AUVs in the Presence of Ocean Currents. In
Conference on decision and control.
A. Pedro Aguiar, Joo P. Hespanha, A. M. P. (2007). Switched seesaw control
for the stabilization of underactuated vehicles. Automatica, 43 :19972008.
Apkarian, P. (1997). On the discretization of LMI-synthesized Linear
Parameter-varying Controllers. automatica, 33 :655661.
Apkarian, P. (1998). Advanced Gain-Scheduling Techniques for Uncertain
Systems. IEEE Transactions on control systems technologiy, 6 :2132.
BIANNIC, J.-M. (1996). Commande robuste des systmes paramtres variables. PhD thesis, ENSAE.
C. S. Chin, M.W.S. Lau, E. L. G. S. (2006). A robust controller design method
and stability analysis of an underactuated underwater vehicle. International Journal of Applied Mathematics and Computer Sciences, 16 :345356.
C. Silvestre, A. P. (2004). Control of the INFANTE AUV using gain scheduled static output feedback. Control Engineering Practice, 12 :15011509.
Cervin, A. (2003). Integrated Control and Real-Time Scheduling. PhD thesis,
Lund Institute of Technology.
Daniel Simon, David Robert, O. S. (2005). Robust control/scheduling codesign : application to robot control. In IEEE Real Time and Embdded
Technology and applications Symposium.
Fossen, T. I. (1994). Guidance and control of Ocean Vehicles. John Wiley &
Sons Ltd.

36

Henriksson, D. (2006). Resource-Constrained Embedded Control and Computing Systems. PhD thesis, Department of Automatic Control Lund University.
N.E.Leonard, D.A. Paley, F. L. R. S. F. D. F. R. D. (2007). Collective motion,
sensor networks, and ocean sampling. Proceedings of the IEEE, 95 :4874.
Pierre Apkarian, Pascal Gahinet, G. B. (1995). Self-scheduled H Control
of Linear Parameter-varying Systems : a design Example. Automatica,
31 :12511261.
Robert, D. (2007). Contribution linteraction commande / ordonnancement. PhD thesis, INPG.
Sala, A. (2005). Computer control under time-varying samplin period : An
LMI gridding approach. automatica, 41 :20772082.
Santos, A. S. (1995). Contribution la conception des sous-marins autonomes : architecture des capteurs daltitude, et commande rfrences capteurs. PhD thesis, Ecole nationale suprieure des Mines de Paris.
Z. Feng, R. A. (2004). Reduced order H control of an autonomous underwater vehicle. Control Engineering Practice, 12 :15111520.
Zin, A. (2005). Sur la commande robuste de suspension automobiles en vue
du control global de chassis. PhD thesis, INPG.

You might also like