Académique Documents
Professionnel Documents
Culture Documents
Rapport Master Roche
Rapport Master Roche
sous-marin autonome
Emilie Roche
Co-tuteurs:
Daniel SIMON et Olivier SENAME
25 juin 2008
Résumé :
Ce rapport développe une loi de commande robuste pour un véhicule
sous-marin autonome.
Un modèle non linéaire du sous-marin a été implémenté avec Matlab,
puis il a été linéarisé par une méthode tangentielle. Une modélisation LPV
polytopique a également été réalisé, en considérant la masse comme seul
paramètre variant.
Deux correcteurs robustes ont ensuite été synthétisés : l’un par la méthode
H∞ , l’autre par la méthode LPV polytopique.
Des résultats de simulation montrent les performances obtenues avec cha-
cun des correcteurs, et notamment l’amélioration apportée par la méthode
LPV.
Abstract :
This report present a robust control law for autonomous underwater ve-
hicles (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 matières
Introduction 1
Conclusion 25
Remerciements
1
ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome
2
ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome
- Parole et cognition
GIPSA-lab est une unité mixte de recherche entre le CNRS (UMR 5216),
l’INPG et l’UJF.
Gipsa-lab s’investit dans des recherches fondamentales sur la parole, la
perception, la cognition, le cerveau, le diagnostic et la commande des sys-
tèmes. Il développe des applications dans les secteurs de l’interaction mul-
timodale, des télécommunications, de l’énergie, de l’environnement, des sys-
tèmes embarqués, de la mécatronique-robotique, de la santé, des transports,
etc.
L’effectif total du GIPSA-lab est d’environ 300 personnes, dont 137 per-
manents, une vingtaine de chercheurs invités, posts-doctorants et ATER, 140
doctorants et une soixante de stagiaires de master.
Le département automatique est à son tour divisé en plusieurs équipes de
recherche : Systèmes à événements discrets ; Systèmes linéaires et robustesse ;
Systèmes non linéaires et complexité ; Systèmes biomécaniques ; Signal, au-
tomatique pour le diagnostic et la surveillance et Systèmes commandés en
réseaux (NeCS).
3
Chapitre 1
Modélisation du véhicule
sous-marin
4
ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome
T
- η1 la position du véhicule : η1 = x y z .
T
- η2 l’orientation du véhicule : η2 = φ θ ψ .
Les angles φ, θ et ψ représentent respectivement le roulis, le tangage et
le lacet du véhicule (utilisation de la paramétrisation par les angles d’Euler),
comme le montre la figure suivante :
X0
Y0
X0 Y0
Z0
Z0
η̇ = Jc (η2 )ν
où les paramètres de l’équation 1.1 correspondent à :
- M est la matrice d’inertie. Elle est composée de 2 termes : Md , la
matrice d’inertie due à la dynamique du système et Ma , matrice d’inertie
d’eau ajoutée, dont les paramètres sont issus de modèles semi-empiriques
(erreur pouvant aller jusqu’à 50 à 70%).
5
ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome
β1 β2
Fig. 1.2 – Définition des angles de commande pour les plans canards (à l’avant) et les
ailerons horizontaux arrières
6
ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome
1.2.1 S-function
Une S-function est un bloc défini sous Matlab-Simulink qui permet à
l’utilisateur de définir lui-même un algorithme exécutable. Elle peut être
codée en langage Matlab (sous forme de M-file) ou en langage C (sous forme
de C MEX-file). C’est cette deuxième solution qui a été utilisée.
Une S-function est composée de plusieurs fonctions qui permettent de
passer des informations importantes dans le schéma Simulink :
7
ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome
8
ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome
? Essai à vitesse nulle : On part d’un état initial nul, on applique une vi-
tesse nulle. Le sous marin reste immobile, donc il est parfaitement équilibré.
? Essai à vitesse constante et plan canard : On part d’un état initial nul
sauf pour la vitesse longitudinale égale à u0 (1m/sec) et on applique un éche-
lon à l’angle d’incidence des plans canards β1 de 0.1 radians. On observe une
variation de l’altitude z de l’ordre de 30m en 100sec (cette valeur est obtenue
pour des gouvernes exagérément grande ; un angle de braquage positif fait
monter le sous-marin donc z diminue) ainsi qu’une petite variation de l’angle
de tangage θ (environ 0.04 radian). Du fait de la force de trainée due aux
gouvernes, on observe également une diminution de u de 0.025m/sec.
9
ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome
3.5 0.01
3 0.005
2.5 0
2 −0.005
1.5 −0.01
1 −0.015
0.5 −0.02
0 −0.025
0 10 20 30 40 50 60 70 80 90 100 0 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 opposés, (c’est-à-dire que les
deux ailes tendent à faire évoluer le sous marin dans la même direction), le
déplacement se fait dans le sens attendu, avec deux fois plus d’intensité que
si une seule aile est braquée. Le mouvement se fait alors avec un angle de
tangage non nul (θ ' 0.8rad)
10 0.9
0.8
0
0.7
−10
0.6
−20 0.5
−30 0.4
0.3
−40
0.2
−50
0.1
−60
0
−70 −0.1
0 10 20 30 40 50 60 70 80 90 100 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 opposés (0.1 et
-0.1 radian)
? Essai avec un angle de roulis puis un angle de tangage non nul : dans les
deux cas, après un temps très court, le système revient à un angle de roulis
ou de tangage nul.
10
ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome
Dans notre cas, la fonction f dépend des 12 variables d’état ainsi que des
quatres commandes (β1 (braquage des plans canards), β2 (braquage des aile-
rons arrières horizontaux), δ1 (braquage des ailerons arrières verticaux), Qc
(référence de poussée pour l’hélice)) .
Cela mène à une représentation d’état de la forme :
ẋ(t) = Ax(t) + Bu(t) + E
(1.3)
y(t) = Cx(t) + Du(t)
avec
- x l’état du système : x = [x u y v z w φ p θ q ψ r]T .
- u les commandes : u = [β1 β2 δ1 Qc ]T .
- y les sorties mesurées. dans un premier temps on peut supposer que
l’ensemble des sorties est mesurées donc y = x.
Le code Matlab correspondant aux matrices A, B, C, D et E est donné
en annexe (voir Annexe 2).
11
ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome
12
Chapitre 2
We Wu
du dy
+ +
r ε + u + y
K G Wy
+
-
n
Le problème posé de cette façon doit ensuite être reformulé sous la forme
13
ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome
du problème standard :
w z
P
u y
K
Fig. 2.2 – Problème standard
kT (s)k∞ ≤ γ (2.1)
avec T (s) la fonction de transfert en boucle fermée du système mis sous forme
standard.
14
ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome
750).
Tous les gabarits auront une forme diagonale, ce qui permet de spéci-
fier des performances pour chaque variable du système MIMO (Multi Inputs
Multi Outputs).
Weu 0
? We est une matrice de la forme : . Les coefficients sont
0 Wez
des transferts du premier ordre :
1 1 s + wb ε
= = s
Weu Wez Ms
+ wb
avec
- Ms = 2 pour avoir une marge de module suffisante
- wb = 0.46 pour avoir un temps de réponse de 5 secondes.
- ε = 0.01 pour voir une erreur de poursuite inférieure à 1%
? Wu est fixé à 1 pour chaque actionneur car toutes les actions sont nor-
malisées.
15
ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome
Dans notre cas γopt est très élevé (γopt = 102) ce qui pourrait indiquer de
très mauvaises performances en boucle fermée.
On trace ensuite les fonctions de sensibilité relatives au deux variables à
contrôler :
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 s’aperçoit que les gabarits ne sont pas respectés (bien que les résultats
obtenus ne soient pas si mauvais que la valeur de γopt ne le laissait présager) :
- pour u, le comportement dans les hautes fréquences est conforme
au gabarit fixé, en revanche, dans les basse fréquence, il y a une augmentation
de la fonction S (−20dB, soit une erreur statique de 10%). Pour améliorer
ce comportement, on diminue la valeur de εu à 10−4 .
- pour z, la bande passante et l’erreur statique ne sont pas respectées.
La bande passante est très proche de celle fixée ; de plus, le sous-marin n’aura
jamais de pente à 90 degrés à franchir, donc on conserve ce résultat. Pour
l’erreur statique, on diminue εz à 10−4 .
Afin d’améliorer les performances et respecter les gabarits spécifiés, on va
modifier le problème à résoudre.
Le principe de la modification des gabarits est le suivant : puisque les ga-
barits ne peuvent pas être respectés, on augmente les contraintes. Le gabarits
modifié ne sera toujours pas respecté (vu que le problème est plus complexe
à résoudre), mais les gabarits initiaux seront mieux respecté.
16
ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome
1/Weu
Su 1/Wez 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 à l’éloignement des fonctions de pondérations
par rapport aux gabarits fixés, qui sont plus contraignants que nécessaire.
On teste ce correcteur sur le système linéarisé ainsi que sur le système
non linéaire. On obtient les résultats suivants : figure : 2.5
Pour la vitesse longitudinale u : la consigne est constante et égale à
1m/sec. La réponse du modèle linéaire est conforme à nos attente, avec un
temps de réponse de 2 secondes (inférieur à celui spécifié) et une erreur sta-
tique nulle. Sur le modèle non linéaire, on observe des variations de la vitesse,
mais qui restent dans un intervalle de + ou − 5% autour de la valeur finale.
Le temps de réponse est de 6 secondes et l’erreur 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
réponse du système linéaire est celle attendue ; celle du système non linéaire
présente un petit dépassement, mais reste très proche de la consigne.
Pour la vitesse de roulis p : l’objectif de la commande est de minimiser
cette vitesse. Il est atteint puisque les variations sont de l’ordre de 10−5 , que
ce soit sur le modèle linéaire ou non linéaire.
Pour la vitesse de tangage q : l’objectif est le même que précédemment.
Sur le modèle linaire, on note une variation assez importante de cette vi-
tesse ( allant jusqu’à 0.13 m/sec, soit 10 fois plus que ce qui était demandé.
En revanche, sur le système non linéaire, la réponse est meilleure, puisque
le maximum de variation est de 0.045 m/sec et que cette vitesse tend à se
17
ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome
Fig. 2.5 – Réponses temporelles obtenues avec le correcteur H∞ pour u (vitesse longi-
tudinale), z (altitude), p (vitesse de roulis) et q (vitesse de tangage). Simulation sur le
modèle linéaire (en bleu) et sur le modèle non linéaire (en vert) ainsi que les consignes
(en rouge)
18
ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome
19
Chapitre 3
20
ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome
mais :
AT1 P + P A1 < 0
(3.3)
AT2 P + P A2 < 0
21
ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome
22
ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome
23
ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome
24
Conclusion
25
Annexe 1 : Détails des équations régissant le mouvement du sous-marin
Etude cinématique
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 même façon, pour les vitesses angulaires :
avec
1 sin φ tan θ cos φ tan θ
Jc2 (η2 ) = 0 cos φ − sin φ (3.8)
0 sin φ/ cos θ cos φ/ cos θ
Etude dynamique
Md ν̇ = Gd (ν)ν + Γ (3.11)
avec : Md la matrice d’inertie due à la dynamique du système :
m 0 0 0 mzG −myG
0 m 0 −mz G 0 −mxG
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 appliquées
au véhicule :
" −→ #
03x3 mSν1 + ν2 ∧ CG
Gd (ν) = −→
mSν1 + ν2 ∧ CG S(IC ν2 )
• Efforts hydrodynamiques
Ces forces et moments agissent sur tout corps en mouvement dans un
fluide supposé visqueux. Ils sont dus à l’action de la masse d’eau ajoutée
ainsi qu’aux frottements visqueux du fluide sur le corps en mouvement. Ils
ne peuvent pas être obtenus théoriquement et l’estimation des coefficients est
très mauvaise (marge de connaissance de 50 à 70%). D’une façon générale,
on peut formuler les efforts hydrodynamiques de la manière suivante :
Force axiale : Xu|u| u|u| + Xvr vr + Xwq wq
Force latérale : 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 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 corres-
pondent à la prise en compte de la masse d’eau ajoutée lors de la dérivation
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 trainée.
? Yur Yuv Yup Zuw Zuq Luv Lur Lup Muw Muq Nuv Nur Nup des termes de
portance.
? Lp|p| est un terme d’amortissement en roulis.
%% 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 = [0 1 0 0 0 0 0 0 0 0 0 0];
Ay = [0 0 0 1 0 0 0 0 0 0 u0 0];
Az = [0 0 0 0 0 1 0 0 -u0 0 0 0];
Aphi = [0 0 0 0 0 0 0 1 0 0 0 0];
Atheta = [0 0 0 0 0 0 0 0 0 1 0 0];
Apsi = [0 0 0 0 0 0 0 0 0 0 0 1];
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 : Résultats de simulation avec le correcteur H∞ : zooms
0.8
0.6
0.4
0.2
0
0 5 10 15 20 25 30 35 40 45 50
42
41
40
39
38
37
36
35
34
90 95 100 105 110 115 120 125 130 135 140
1.4
1.2
0.8
0.6
0.4
0.2
0
0 5 10 15 20 25 30 35 40 45 50
45
40
35
30
25
20
15
10
−5
0 20 40 60 80 100 120
Fossen, T. I. (1994). Guidance and control of Ocean Vehicles. John Wiley &
Sons Ltd.
36
Henriksson, D. (2006). Resource-Constrained Embedded Control and Com-
puting Systems. PhD thesis, Department of Automatic Control Lund Uni-
versity.