rapport_master_Roche.pdf



Comments



Description

Commande robuste d’un véhiculesous-marin autonome Emilie Roche INRIA Rhône Alpes Département d’Automatique de Gipsa-lab 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 chacun 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 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 matières Introduction 1 Modélisation du véhicule sous-marin 1.1 Modèle hydromécanique . . . . . . . 1.2 Mise en oeuvre sous Matlab . . . . . 1.2.1 S-function . . . . . . . . . . . 1.2.2 Création du schéma Simulink 1.2.3 Vérification du modèle obtenu 1.3 Linéarisation du modèle . . . . . . . 1.4 Modèle LPV polytopique . . . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 . 4 . 7 . 7 . 8 . 8 . 10 . 11 2 Synthèse d’un correcteur H∞ 13 2.1 Présentation de la méthode . . . . . . . . . . . . . . . . . . . 13 2.2 Spécification des gabarits fréquentiels . . . . . . . . . . . . . . 14 2.3 Résultats obtenus . . . . . . . . . . . . . . . . . . . . . . . . . 15 3 Synthèse d’un correcteur LPV Polytopique 20 3.1 Explication de la méthode . . . . . . . . . . . . . . . . . . . . 20 3.2 Mise en œuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.3 Résultats obtenus . . . . . . . . . . . . . . . . . . . . . . . . . 21 Conclusion 25 Remerciements Je tiens à remercier Messieurs Daniel Simon et Olivier Sename, responsables de mon stage, pour m’avoir fait confiance sur ce projet et pour m’avoir 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 m’ont accueillis pendant mes 5 mois de stage : l’INRIA Rhône Alpes et le GIPSA-lab, ainsi que toute l’équipe NeCS à laquelle j’ai été intégrée. Merci également à mes camarades stagiaires, qui ont contribués à faire de stage un moment agréable, donc merci pour leur bonne humeur. interconnectés par un réseau de communication sans fils. on peut noter : .).la cartographie de fonds sous marins par une flottille d’AUV. gaz.la localisation d’une boîte noire après un crash aérien.la détection d’une source par suivi de gradient (eau douce. Ce projet a pour but de contrôler un système multi-agents (composé de véhicules de surface (ASV) et de véhicules sousmarins (AUV)).Introduction Ce stage s’inscrit dans le cadre du projet CONNECT (CONtrol NEtworked Cooperative sysTems). Parmi les missions envisageables pour ce type de système. 1 – Photo du sous-marin Asterχ ((c) Ifremer) 1 . produit chimique. tout en minimisant les vitesses de roulis et de tangage. . ... Fig. Le but de ce stage est de concevoir une commande robuste afin d’asservir la vitesse longitudinale et l’altitude d’un sous-marin de type Asterχ . Cette équipe est commune au département automatique du GIPSA-lab. la synthèse H∞ a été étendue au systèmes à paramètres variants. à la diffusion de l’information scientifique et technique. administratifs. La robustesse apportée par ce type de correcteur peut ensuite suffire à garantir de bonnes performances sur le système non linéaire. dont le but est de développer une nouvelle approche de commande pour prendre en compte l’apparition de nouveaux composants sans fils de faible coût. L’INRIA développe de nombreux partenariats avec le monde industriel et favorise le transfert technologique et la création d’entreprises dans le domaine des STIC. Ce stage a été effectué au sein de deux laboratoires de recherche : l’INRIA Rhône Alpes et le laboratoire GIPSA-lab. 200 ingénieurs. de fixer le comportement souhaité en boucle fermée. L’INRIA (Institut National de Recherche en Informatique et Automatique) a pour vocation d’entreprendre des recherches fondamentales et appliquées dans les domaines des sciences et technologies de l’information et de la communication (STIC). au développement. L’INRIA Rhône Alpes est réparti sur 4 sites : Inovallée Meylan-Montbonnot et campus à Grenoble. Elle permet également de spécifier lors de la conception du contrôleur. domaine scientifique de la Doua et technopole Gerland à Lyon.Automatique . qui n’est pas faite à l’origine pour des systèmes non linéaires : la commande H∞ qui permet. Le GIPSA-lab regroupe trois départements : . l’accroissement de la complexité des systèmes et la répartition dans un réseau à reconfiguration dynamique de capteurs et d’actionneurs (réseaux de capteurs). dont la loi d’évolution est très mal connue (incertitude sur la modélisation du système). notamment dans les domaines de l’aéronautique et de l’automobile. comptant un total de 600 personnes : 200 chercheurs et enseignantschercheurs. grâce à des gabarits fréquentiels. L’institut assure également un fort transfert de technologie en accordant une grande attention à la formation par la recherche.Images et signal 2 . à l’expertise et à la participation à des programmes internationaux.ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome Actuellement. 200 doctorants et postdoctorants (dont 45% étrangers) et 136 stagiaires. L’INRIA Rhône Alpes est divisé en 28 équipes de recherche : j’ai été intégrée à l’équipe NeCS (NEtworked Controlled Systems). Depuis une dizaine d’années. techniciens. une trajectoire à suivre par le système bouclé. L’idée est ici d’utiliser un autre type de commande. la commande des véhicules sous-marins se fait principalement par la méthode par modes glissants : cette méthode permet de calculer une loi de commande stabilisant un système non linéaire. le diagnostic et la commande des systèmes. L’effectif total du GIPSA-lab est d’environ 300 personnes. on va calculer un correcteur H∞ et évaluer ses performances sur les systèmes linéaire et non linéaire.ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome . le cerveau. Puis on va linéariser ce modèle de façon à pouvoir utiliser des outils de la commande robuste des systèmes linéaires.Parole et cognition GIPSA-lab est une unité mixte de recherche entre le CNRS (UMR 5216). Dans une première partie. Le département automatique est à son tour divisé en plusieurs équipes de recherche : Systèmes à événements discrets . une vingtaine de chercheurs invités. la cognition. qui permet de prendre en compte à la conception des variations de paramètres mal connus. 140 doctorants et une soixante de stagiaires de master. Systèmes biomécaniques . Signal. on va réaliser un modèle non linéaire du sousmarin. dynamiques et hydrodynamiques du mouvement. Dans une deuxième partie. Systèmes linéaires et robustesse . la perception. des télécommunications. de la santé. Systèmes non linéaires et complexité . de la mécatronique-robotique. des transports. qui tient compte des aspects cinématiques. basé sur un modèle LPV polytopique (Linéaire à Paramètres Variants). l’INPG et l’UJF. de l’environnement. posts-doctorants et ATER. Il développe des applications dans les secteurs de l’interaction multimodale. automatique pour le diagnostic et la surveillance et Systèmes commandés en réseaux (NeCS). etc. de l’énergie. on va construire un autre type de correcteur. dont 137 permanents. Gipsa-lab s’investit dans des recherches fondamentales sur la parole. Puis dans une troisième partie. 3 . des systèmes embarqués. Y0 . .le repère inertiel : <0 (O. on utilisera un vecteur d’état  le comportement  η(6) à 12 variables .le repère lié au véhicule : <(C. 1994. deux repères sont à considérer : . On donne ici un résumé des résultats obtenus. X. on ne cherchera pas seulement une équation donnant le comportement global du sous-marin.Chapitre 1 Modélisation du véhicule sous-marin 1. Z0 ) qui dans le cas de sous-marin se déplaçant à faible vitesse peut être pris comme étant lié à la Terre.1 Modèle hydromécanique L’analyse détaillée de la modélisation d’un sous-marin du même type que celui étudié a déjà été effectuée (Fossen. contrairement au centre de gravité qui peut être modifié (cas de batteries mobiles par exemple). La modélisation du sous-marin ayant pour but une implémentation en vue de simulation. mais également une description de chacun des comportements pris séparément. Z) dont l’origine C (centre de carène) peut être différente du centre de gravité de véhicule. Le centre de carène est une centre géométrique. On fait alors l’hypothèse que le comportement global est la somme de chacune des composantes prises à part. Y. Pour décrire du véhicule. 1995). et donc ne change jamais. Santos. X0 . Pour la modélisation du sous-marin. ν(6) η représente   la situation du véhicule exprimée dans le référentiel inertiel η <0 : η = 1 avec η2 4 .  T . on sépare l’analyse en deux parties : la cinématique (aspects géométriques du mouvement) et la dynamique (effets des forces et des moments sur le mouvement).   ν ν représente le torseur vitesse : ν = 1 exprimé dans le repère local du ν2 véhicule <. θ (tangage). Elle est composée de 2 termes : Md . θ et ψ représentent respectivement le roulis. le tangage et le lacet du véhicule (utilisation de la paramétrisation par les angles d’Euler).ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome  T . 1. comme le montre la figure suivante : X0 Y0 Y0 X0 Z0 Z0 Fig. la matrice d’inertie due à la dynamique du système et Ma . dont les paramètres sont issus de modèles semi-empiriques (erreur pouvant aller jusqu’à 50 à 70%). et Ψ (lacet). 5 . Les angles φ.η2 l’orientation du véhicule : η2 = φ θ ψ .1 correspondent à : . L’étude complète permet d’aboutir au système dynamique suivant : M ν˙ = G(ν)ν + D(ν)ν + Γg + Γp + Γu (1. Le détail des équations est donné en annexe (Annexe 1). Les variables ν1 et ν2 sont respectivement les vitesses linéaires et les vitesses angulaires (dérivées premières des vecteurs η1 et η2 au change T  T ment de repère près) et sont notées : ν1 = u v w et ν2 = p q r .η1 la position du véhicule : η1 = x y z . Pour décrire le comportement du système.1 – Définition des angles φ (roulis).1) η˙ = Jc (η2 )ν où les paramètres de l’équation 1.M est la matrice d’inertie. matrice d’inertie d’eau ajoutée. 2 – Définition des angles de commande pour les plans canards (à l’avant) et les ailerons horizontaux arrières Remarque : La modélisation des gouvernes ainsi que des efforts hydrodynamiques (détaillée en annexe) n’est valable que pour un angle d’incidence inférieur à 20 degrés (l’angle d’incidence représente l’inclinaison du sousmarin relativement au fluide en mouvement). et Ga dû aux forces hydrodynamiques (calculées à partir des coefficients de la matrice d’inertie d’eau ajoutée).Γp représente les forces et moments dus aux perturbations (différentes densités de l’eau de mer.deux ailerons verticaux à l’arrière (angle δ1 ). Dans notre cas.Jc (η2 ) est la matrice de passage du référentiel local <(C. . courants marins.D(ν) est la matrice des coefficients d’amortissement hydrodynamique (également issue d’estimation donc la connaissance est très approximative). le sous-marin possède une hélice pour commander la vitesse longitudinale (dont la commande est fournie sous forme de poussée Qc ) ainsi que des ailerons : .Γg est le vecteur des force de gravité et de la poussée d’Archimède. .ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome . X0 Y0 Z0 ) : Jc (η2 ) = c1 2 03x3 Jc2 (η2 ) 6 . . Il est également composé de deux termes : Gd dû aux forces dynamiques. .deux ailerons horizontaux à l’arrière (angle β2 ). Au delà la force de portance n’agit plus et il y a "décrochage".. xyz) au J (η ) 03x3 repère inertiel (lié à la terre) <0 (O.deux ailerons horizontaux à l’avant du véhicule (plans canards les ailerons droits et gauches sont commandés avec le même angle β1 ). 1.. β2 β1 Fig.G(ν) représente l’action des forces de Coriolis et des forces centrifuges.Γu représente les forces et moments générés par les actionneurs du véhicule. .) considérés nuls dans notre modèle. . et dépend bien évidement du type d’actionneur que possède l’engin. . int_T tid) réalise l’algorithme souhaité : il faut récupérer les entrées depuis Matlab. il est nécessaire de disposer d’un modèle utilisable sous Matlab. ? static void mdlTerminate(SimStruct *S){} clos la S-function. Dans notre cas aucune procédure particulière est nécessaire donc cette fonction restera vide (mais sa présence est indispensable). Une S-function est composée de plusieurs fonctions qui permettent de passer des informations importantes dans le schéma Simulink : ? static void mdlInitializeSizes(SimStruct *S) permet de définir le nombre d’entrées et de sorties qui devrait être connecté au bloc. ? static void mdlInitializeSampleTimes(SimStruct *S) sert à définir si la fonction est continue ou discrète (dans le cas de fonction discrète. Elle peut être codée en langage Matlab (sous forme de M-file) ou en langage C (sous forme de C MEX-file). Pour réaliser ce modèle.2. qui permettent d’utiliser un programme en langage C depuis un schéma Simulink (ce qui me permettra de reprendre des morceaux des programmes déjà existants. presque identique à l’asterχ ). ? static void mdlOutputs(SimStruct *S. Pour pouvoir par la suite utiliser des outils disponibles uniquement sous Matlab (synthèse de correcteur H∞ ).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. 1. 7 . on va utiliser des S-functions. effectuer les calculs nécessaires puis écrire les sorties qui seront transmises au schéma Simulink.2 Commande robuste d’un véhicule sous-marin autonome Mise en oeuvre sous Matlab Il existe déjà un modèle de sous-marin codé en C. C’est cette deuxième solution qui a été utilisée.ROCHE Emilie 1. Elle permet également de vérifier le nombre de paramètres. et de vérifier que ce nombre est bien respecté. c’est ici qu’il faut définir la période d’échantillonnage). 8 . on calcule séparément les vecteurs η et ν puis on recombine les variables de façon à avoir une forme plus classique : [x x˙ y y˙ · · · ]T 1. . .3 – Schéma simulink Pour faciliter l’implémentation. Voici la correspondance entre les différentes fonctions codée en C et les paramètres de l’équation 1.2. .2 Commande robuste d’un véhicule sous-marin autonome Création du schéma Simulink On utilise une S-function pour décrire chacun des comportements présentés dans la partie "modèle hydromécanique" (ainsi qu’en annexe).Gamma_G pour Γg .le bloc Gamma_u qui regroupe la propulsion de l’hélice et les trois ailerons : terme Γu .Minertinv représente l’inverse de la matrice d’inertie M . De plus.ROCHE Emilie 1.3 Vérification du modèle obtenu On ne dispose pas de données permettant une comparaison avec un modèle déjà existant.3 Fig. 1.2. Il suffit ensuite de relier les blocs Simulinks de façon à obtenir le comportement global du sous-marin : voir figure 1.1 : . les coefficients utilisés pour la modélisation étant fournis par l’Ifremer (fabriquant du sous-marin) on les supposera exacts.hydrodynamique pour D(ν) .dynamique pour Gd (ν) (le terme Ga est négligé.changement de repère pour la matrice Jc (η2 ). donc il est parfaitement équilibré.025m/sec. comme cette gouverne est située de l’autre côté du centre de gravité. Les dimensions des deux gouvernes étant à peu près identiques.04 radian). mais avec un angle de tangage presque nul. mais dans le sens inverse (le sous-marin descend donc z augmente). on applique une vitesse nulle. ? 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 échelon à l’angle d’incidence des plans canards β1 de 0. modification de la vitesse u).ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome La vérification consistera donc à contrôler que le comportement du système ne soit pas aberrant. pour un angle de braquage positif. ? Essai à vitesse constante : on part d’un état initial nul et on applique en t = 0 un échelon de poussée correspondant à une vitesse longitudinale u de 1m/sec. 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 . le sous-marin remonte vers la surface (respect. Le sous marin reste immobile. on observe également une diminution de u de 0. surement due à un léger décalage du point d’application de la poussée de l’hélice par rapport au centre d’inertie. En effet. les évolutions sont du même ordre de grandeur. 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. on réalise quelques tests simples : ? Essai à vitesse nulle : On part d’un état initial nul. ? Essai avec braquage des 2 ailes horizontales (avant et arrière) : on peut distinguer deux cas intéressant : les ailes ont le même braquage ou des braquages opposés.013rad. le sous-marin descend. Dans le cas ou les ailes ont le même angle de braquage. Evolution inattendue : petite variation de l’altitude z (de l’ordre de 5.1rad on obtient une variation d’altitude de 3. Par exemple si on braque les deux gouvernes avec des angles β1 = β2 = 0. si l’angle est positif (respectivement négatif). Du fait de la force de trainée due aux gouvernes.3m en 100 secondes avec un angle de tangage θ = 0. Le résultat obtenu est correct : u passe de 0 à 1m/sec en 40 secondes. ? Essai à vitesse constante et gouverne arrière horizontale : on applique la même variation que précédemment mais sur β2 : on observe la même évolution que précédemment (variation d’altitude z. la position x varie linéairement avec une pente de 1m/sec (après le transitoire).1 radians.3cm en 100 secondes). Pour cela. 9 . descend). x2 ) que l’on souhaite linéariser autour de (x10 .1 0 10 20 30 40 50 60 70 80 90 100 Fig.9 10 0.02 0 0 10 20 30 40 50 60 70 80 90 −0. le système revient à un angle de roulis ou de tangage nul.005 1. Le mouvement se fait alors avec un angle de tangage non nul (θ ' 0. on utilise la méthode suivante de linéarisation tangentielle : Soit la fonction f : f (x1 .4 – Position z et angle de tangage pour des angles de braquage égaux (0.005 2. avec deux fois plus d’intensité que si une seule aile est braquée. le déplacement se fait dans le sens attendu.01 3 0.1 radian) ? Essai avec un angle de roulis puis un angle de tangage non nul : dans les deux cas.1 et -0.015 0. 1. x20 ) alors : .5 −0.8 0 0.1 −60 −70 0 0 10 20 30 40 50 60 70 80 90 100 −0.5 – Position z et angle de tangage pour des angles de braquage opposés (0.1 radian) Dans le cas ou les angles de braquage sont opposés. 1.ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome 3.5 −0. (c’est-à-dire que les deux ailes tendent à faire évoluer le sous marin dans la même direction).5 −30 0.6 −20 0. 1. après un temps très court.4 0.2 −50 0.5 0.025 0 100 10 20 30 40 50 60 70 80 90 100 Fig.7 −10 0.01 1 −0.3 −40 0.8rad) 0.3 Linéarisation du modèle Pour linéariser le modèle précédemment obtenu.5 0 2 −0. . ∂f . . ∂f . . x20 ) + ∆x1 + ∆x2 (1. Flin = f (x10 .2) ∂x1 . x1 .x2 ∂x2 . x2 0 10 0 0 0 .x1 . .4) y(t) = C(ρ(·))x(t) + D(ρ(·))u(t) Dans le cas où on peut borner a priori les variations de ces paramètres ρ entre ρmin et ρmax .  x(t) ˙ = A(ρ(·))x(t) + B(ρ(·))u(t) (1. En effet lors de la linéarisation. Qc (référence de poussée pour l’hélice)) . C. Le code Matlab correspondant aux matrices A.x l’état du système : x = [x u y v z w φ p θ q ψ r]T . 1.4) varient en fonction d’un ou plusieurs paramètres ρ(·). C et D (représentées dans l’equation 1. un même angle de braquage des gouvernes (que ce soit β1 ou β2 ) produit des variations d’altitude différentes. on effectue quelques simulations. On peut approximer le comportement du système non linéaire par un système Linéaire à Paramètres Variants (LPV) c’est-à-dire un système où les matrices A. la force de trainée a totalement disparu. on peut construire un modèle valable dans toute la 11 .u les commandes : u = [β1 β2 δ1 Qc ]T . Cela mène à une représentation d’état de la forme :  x(t) ˙ = Ax(t) + Bu(t) + E (1. δ1 (braquage des ailerons arrières verticaux).ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome Dans notre cas. et la force de portance n’est plus reliée à l’angle d’incidence de l’AUV.4 Modèle LPV polytopique Le principe est d’utiliser un outil de la commande des systèmes linéaires pour commander un système non linéaire. en revanche. la fonction f dépend des 12 variables d’état ainsi que des quatres commandes (β1 (braquage des plans canards). Pour vérifier la linéarisation obtenue. D et E est donné en annexe (voir Annexe 2). B. . Le comportement des deux systèmes est quasiment identique pour une même commande de poussée Qc .3) y(t) = Cx(t) + Du(t) avec . B. ce qui entraine un mouvement plus important que prévu suivant les axes Ox (pas de diminution de la vitesse longitudinale u) et Oz (si l’aile braquée est horizontale). Il s’avère que la plus grande différence entre le modèle non-linéaire et le modèle linéarisé se situe au niveau des gouvernes.y les sorties mesurées. dans un premier temps on peut supposer que l’ensemble des sorties est mesurées donc y = x. β2 (braquage des ailerons arrières horizontaux). Dmin } et {Amax . Cmax . donc un correcteur LPV . pour une valeur déterminée de la masse (M ) on calcule la combinaison linéaire :   AM = α1 × AMmin + α2 × AMmax avec (1. dans un premier temps. Ensuite. Malheureusement. Si les paramètres sont mesurables en ligne. d’appliquer cette méthode pour une variation de la masse. les matrices C et D étant indépendantes de la masse) pour les deux valeurs extrèmes de la masse (Mmin et Mmax ). qui est l’un des paramètres influançant le plus le comportement du système. Pour n’importe quelle valeur de ρ comprise entre ρmin et ρmax . une combinaison linéaire de ces modèles permet d’obtenir un modèle valable pour une certaine valeur de chacun des paramètres (ce qui suppose une estimation des paramètres). ρmax ].4. Bmin .5) α1 + α2 = 1 Ce type de modèle peut être intéressant pour prendre en compte l’incertitude sur les paramètres hydrodynamiques (qui sont connus avec une erreur allant jusqu’à 70%). Cette variation sera de + ou − 20% de la masse nominale. Le principe de la méthode (pour plus d’explication. si on considère un seul paramètre variant ρ ∈ [ρmin . Bmax . on construit deux systèmes sommets dont les matrices sont {Amin . on a alors :  A(ρ) = α1 × Amin + α2 × Amax (1. il y a trop de paramètres pour pouvoir appliquer la méthode polytopique (14 paramètres ce qui ammènerait à la construction d’un polytope de 214 sommets). Ensuite. Le modèle linéaire obtenu lors de la phase précédente étant linéaire vis-à-vis de la masse.6)  M −Mmin Mmax −M α1 = Mmax −Mmin et α2 = Mmax −Mmin 12 . Pour le système 1.ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome plage de variation. la construction du modèle LPV polytopique est très simple : on calcule les matrices d’état (A et B. On choisit donc. Dmax }. voir chapitre 3) est de construire un polytope (ensemble convexe) dont les sommets correspondent aux combinaisons des bornes minimales et maximales des paramètres variants. Cmin . on peut alors construire un correcteur qui s’adapte en ligne à ces paramètres. 1 Présentation de la méthode Le principe de la commande H∞ est de spécifier des performances en boucle fermée grâce à des gabarits fréquentiels. 2.1 – Schéma formé par l’interconnexion du modèle du système G. et donc placer un poids Wu comme montrer figure 2. We Wu du ε r + K + + dy u G + + y Wy n Fig. Wu et Wy Le problème posé de cette façon doit ensuite être reformulé sous la forme 13 .1. il faut agir sur la fonction S = ε/y. On peut également imposer un comportement pour certaines sorties mésurées : présence du poids Wy .Chapitre 2 Synthèse d’un correcteur H∞ 2. pour traiter un problème d’asservissement. placés à des endroits spécifiques dans la boucle de commande (suivant la fonction de sensibilité que l’on cherche à modifier). Par exemple. et donc placer un poids We comme indiquée sur la figure ci-dessous. du correcteur K et des différents poids We . il faut jouer sur la fonction de sensibilité KS = u(action)/r. Pour imposer des contraintes sur les actions. On cherche alors à déterminer le controleur K tel que : kT (s)k∞ ≤ γ (2.1) avec T (s) la fonction de transfert en boucle fermée du système mis sous forme standard.. par exemple.5 radian . poussée du propulseur inférieure à Pmax = 14 . la reconstruction des cartes à partir des données collectées. ? respect des contraintes sur les actionneurs (angle de braquage des gouvernes inférieur à 0. un suivi de consigne avec un temps de réponse de l’ordre de 5 secondes. on considèrera que la pente du terrain n’est pas trop abrupte : une pente trop importante ne peut pas être franchie avec ce type d’actionneurs). il faut tout d’abord déterminer une structure ainsi que des gabarits qui permettent de définir des spécifications (temps de réponse en boucle fermée.). P est le modèle augmenté : il contient le modèle. un suivi de consigne avec la même dynamique que u (le sous-marin étant manœuvré par des ailerons.2 Spécification des gabarits fréquentiels Pour calculer un correcteur H∞ . 2. les spécifications à respecter sont les suivantes : ? pour la vitesse longitudinale u. ? vitesse de tangage et de roulis aussi faible que possible (par exemple 10−2 ).ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome du problème standard : w P u z y K Fig.2 – Problème standard Cette formalisation sert à étudier le transfert entre w (les entrées exogènes) et z (les sorties à contrôler) (y étant les sorties mesurées et u les entrées contrôlées). 2. Dans notre cas. erreur statique. une erreur statique faible (10−2 ) et une marge de module suffisante.. ? pour la position z. ainsi que les poids Wi et les incertitudes (si il y en a). ceci pour faciliter. .un poids We sur l’erreur de poursuite pour les spécifications sur u et z. 2. 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 .un poids Ws sur certaines des sorties (vitesse de roulis p et de tangage q).46 pour avoir un temps de réponse de 5 secondes. on dispose de deux outils : 15 . les deux variables à asservir.wb = 0. ? Ws est fixé à 10−2 pour les états p (vitesse de roulis) et q (vitesse de tangage) Il suffit ensuite d’utiliser la commande Matlab sysic (qui calcule le système augmenté sous forme standard) et la fonction lmiHinf qui calcule le correcteur H∞ minimisant l’écart entre le gabarit spécifié et les performances garanties avec le correcteur (niveau d’atténuation optimal γopt ). Ceci nous permet de déduire la structure nécessaire : .   Weu 0 .01 pour voir une erreur de poursuite inférieure à 1% ? Wu est fixé à 1 pour chaque actionneur car toutes les actions sont normalisées.ε = 0.3 Résultats obtenus Pour connaitre a priori les performances du correcteur que l’on vient de calculer. . Tous les gabarits auront une forme diagonale.un poids Wu sur l’action pour la contrainte sur les actionneurs.Ms = 2 pour avoir une marge de module suffisante . ce qui permet de spécifier des performances pour chaque variable du système MIMO (Multi Inputs Multi Outputs).ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome 750). . on augmente les contraintes. Pour l’erreur statique. donc on conserve ce résultat. Plus ce nombre est proche de 1. 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) : . mais les gabarits initiaux seront mieux respecté. dans les basse fréquence.3 – Fonction de sensibilité S sur u (vitesse longitudinale) et sur z. soit une erreur statique de 10%). le sous-marin n’aura jamais de pente à 90 degrés à franchir.pour z. On trace ensuite les fonctions de sensibilité relatives au deux variables à contrôler : 1/Weu Sz 1/Wez Su Fig. Le principe de la modification des gabarits est le suivant : puisque les gabarits ne peuvent pas être respectés. La bande passante est très proche de celle fixée . il y a une augmentation de la fonction S (−20dB. .les fonctions de sensibilité S (sur u et z) qui permettent de visualiser le comportement fréquentiel du système bouclé obtenu. le comportement dans les hautes fréquences est conforme au gabarit fixé. mieux les gabarits seront respectés (ce qui assure un comportement très proche de celui désiré). en revanche. la bande passante et l’erreur statique ne sont pas respectées. Le gabarits modifié ne sera toujours pas respecté (vu que le problème est plus complexe à résoudre). 2. Dans notre cas γopt est très élevé (γopt = 102) ce qui pourrait indiquer de très mauvaises performances en boucle fermée. on diminue la valeur de εu à 10−4 .ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome . on diminue εz à 10−4 . Afin d’améliorer les performances et respecter les gabarits spécifiés. Pour améliorer ce comportement. de plus. . on va modifier le problème à résoudre.pour u. 16 .le nombre γopt retourné par la fonction lmiHinf. ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome Les résultats obtenus dans ce cas là respectent les spécifications fixées au départ pour u et z donc on conserve les gabarits suivants : figure : 2. on note une variation assez importante de cette vitesse ( allant jusqu’à 0. Sur le modèle linaire. avec un temps de réponse de 2 secondes (inférieur à celui spécifié) et une erreur statique nulle. Pour la position z : la consigne est une rampe de pente 0. Là encore la réponse du système linéaire est celle attendue . Pour la vitesse de roulis p : l’objectif de la commande est de minimiser cette vitesse. celle du système non linéaire présente un petit dépassement. Pour la vitesse de tangage q : l’objectif est le même que précédemment.4m /sec (pente maximum pouvant être gravie par le sous-marin) sur les intervalles de temps : [0. la réponse est meilleure. on a une valeur γopt encore plus importante : γopt = 10640. sur le système non linéaire. 2.045 m/sec et que cette vitesse tend à se 17 . mais reste très proche de la consigne. Sur le modèle non linéaire. on observe des variations de la vitesse. En revanche. soit 10 fois plus que ce qui était demandé. puisque le maximum de variation est de 0. La réponse du modèle linéaire est conforme à nos attente.4 – Fonction de sensibilité S sur u (vitesse longitudinale) et sur z. que ce soit sur le modèle linéaire ou non linéaire. 100] et [200.13 m/sec. qui sont plus contraignants que nécessaire. mais qui restent dans un intervalle de + ou − 5% autour de la valeur finale.5 Pour la vitesse longitudinale u : la consigne est constante et égale à 1m/sec. On obtient les résultats suivants : figure : 2. Le temps de réponse est de 6 secondes et l’erreur statique maximale est de 1% de la valeur finale. 300] secondes et constante entre les deux. ainsi que les gabarits retenus Dans ce cas là. Il est atteint puisque les variations sont de l’ordre de 10−5 .4 1/Weu 1/Wez Su Sz Fig. On teste ce correcteur sur le système linéarisé ainsi que sur le système non linéaire. mais cette valeur correspond à l’éloignement des fonctions de pondérations par rapport aux gabarits fixés. 2.5 – Réponses temporelles obtenues avec le correcteur H∞ pour u (vitesse longitudinale).ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome Fig. 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 . p (vitesse de roulis) et q (vitesse de tangage). z (altitude). mais qui restent assez bonnes dans l’ensemble. la robustesse qu’il apporte permet d’obtenir des performances dégradées pour certains états. 19 . Bien que le correcteur H∞ ne soit pas conçu pour fonctionner sur le modèle non linéaire.ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome stabiliser autour de zero. on ne cherche pas à vérifier :  T A1 P1 + P1 A1 < 0 (3. il y a deux matrices A : A1 et A2 . on cherche à améliorer les performances obtenues. on utilise une fonction de Lyapunov V de la forme suivante : V = ATcl P Acl (avec P une matrice définie positive : P = P T > 0 . on va calculer un correcteur sur le modèle LPV polytopique présenté dans le premier chapitre (voir 1.2) AT2 P2 + P2 A2 < 0 20 . Il y a donc 2N fonctions de Lyapunov à vérifier. 3. Pour la résolution. on ne dispose plus d’une seule représentation d’état du système.1 Explication de la méthode La commande LPV polytopique repose sur la synthèse H∞ . surtout en terme d’erreur statique sur la vitesse longitudinale u et de dépassement sur l’altitude z. Pour garantir la stabilité quadratique dans l’ensemble du polytope il faut trouver une unique matrice P qui vérifie l’ensemble des 2N équations.4). Pour cela. Par exemple dans le cas ou une seul paramètre varie. mais de 2N (avec N le nombre de paramètres variants). La dérivée de V doit être négative pour assurer la stabilité : V˙ = ATcl P + P Acl < 0 (3.Chapitre 3 Synthèse d’un correcteur LPV Polytopique Après avoir calculé un correcteur H∞ qui fonctionne correctement sur le modèle non linéaire. Acl est la matrice d’état de la boucle fermée).1) Dans le cadre des systèmes LPV polytopique. On obtient les systèmes Gmin = {Amin .3) Mise en œuvre Dans un premier temps.5 On teste ce correcteur sur les modèles linéaires et non linéaire. le γopt obtenu est très important : γopt = 10633. 3. Dmax }.lag.2 Commande robuste d’un véhicule sous-marin autonome  AT1 P + P A1 < 0 AT2 P + P A2 < 0 (3.3 Résultats obtenus Comme pour le correcteur H∞ .4)  Mnominal −Mmin Mmax −Mnominal α1 = Mmax −Mmin = 0. Pour l’altitude z : le suivi de référence est meilleur qu’auparavant. on garde les mêmes pondérations We . Pour pouvoir comparer le correcteur LPV polytopique que l’on va calculer avec le correcteur H∞ obtenu précédemment.ensieg.5 et α2 = Mmax −Mmin = 0. Wu et Wy . on obtient de meilleures performances : les changements de référence sur z sont mieux absorbés : les pics ont une amplitude plus faible (2. Cmin . le dépassement qui était visible au changement de référence a disparu. en appliquant les mêmes consignes que précédement : figure 3.fr/cpoussot/index. 21 . ainsi que le γopt .1 Les réponses obtenues sont meilleures qu’avec le correcterur H∞ : Pour la vitesse longitudinale u : le modèle linéaire donne les mêmes résultats qu’avec le correcteur H∞ .inpg. Bmin . on calcule le correcteur correspondant au modèle nominal :   Knominal = α1 × Kmin + α2 × Kmax avec (3. Dmin } et Gmax = {Amax . Cmax .html) qui calcule les deux correcteurs correspondant à chacun des sommets du polytope. Dans un premier temps. Pour la vitesse de roulis p : elle reste très faible.5%) et l’erreur statique ne dépasse pas 0. on construit les deux systèmes sommets pour des masses Mmin et Mmax égales à plus ou moins 20% de la masse nominale M .ROCHE Emilie mais : 3. de l’ordre de 10−6 m/sec. On utilise ensuite la fonction "lmiHinfPolytope (développée par Charles Poussot : http ://www.1%. Bmax . Sur le modèle non linéaire. z (altitude). 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) 22 . 3.ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome Fig.1 – Réponses temporelles obtenues avec le correcteur LP V polytopique pour u (vitesse longitudinale. p (vitesse de roulis) et q (vitesse de tangage). Le correcteur calculé pour une borne de l’intervalle donne toujours des résultats corrects sur la borne opposée. on obtient un système instable en boucle fermée. on obtient des résultats satisfaisants.5 × Kmax ) sur le système minimum et sur le système maximum.015 pour le correcteur H∞ . bien que légèrement dégradés. les résultats obtenus sur les deux modèles sont beaucoup plus proches que dans le cas de la commande H∞ . on s’aperçoit que l’on peut calculer un correcteur pour un écart de + ou − 70% de la masse nominale.2 On pourrait donc s’affranchir de la mesure de la masse : en utilisant tout le temps le correcteur nominal (calculé pour la masse nominale).ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome Pour la vitesse de tangage q : les pics observés au changement de référence pour z ont une amplitude un peu plus importante : 0. mais cette fois la vitesse se stabilise autour de zéro.03 au lieu de 0. De façon générale. on peut noter que dans le cas de la commande LPV polytopique.5 × Kmin + 0. les performances sont légèrement dégradées. mais les spécifications sont respectées. Pour ces valeurs. En augmentant progressivement les variations de masse. Au delà. 23 . Mais en simulant le correcteur nominal (Knominal = 0. Voici par exemple les courbes obtenues pour le correcteur Kmax sur le système Gmin : voir figure 3. restent très proches des spécifications fixées au départ. et les résultats. on se rend compte que le système est stable. nous avons expliqué que cette technique était utilisable si on pouvait estimer ou mesurer le paramètre qui varie. Précédement. 3. 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) 24 . z (altitude).2 – Réponses temporelles obtenues avec le correcteur LP V polytopique pour u (vitesse longitudinale. p (vitesse de roulis) et q (vitesse de tangage).ROCHE Emilie Commande robuste d’un véhicule sous-marin autonome Fig. puisque.Conclusion Dans ce rapport. sur le modèle non linéaire. bien que cette méthode nécessite en théorie une mesure ou estimation du paramètre variant. 25 . un deuxième type de correcteur a été conçu : un correcteur LPV polytopique. on obtient une erreur statique quasiment nulle pour u et plus aucun dépassement pour z. en considérant une variation de masse de + ou − 20% par rapport à la masse nominale. après avoir construit les modèles nécessaires au calcul d’une commande. pour continuer à avoir un système stable en boucle fermée. mais qui. les résultats obtenus sont meilleurs que précédemment. ou de la qualité de la commande. nous avons réalisé deux types de correcteurs robustes. De plus. en fonction de l’utilisation des ressources. on s’est aperçu que le correcteur calculé sur le système nominal permettait de stabiliser le système et de garantir les performances spécifiées lors de la synthèse. le correcteur pourrait adapter la période d’échantillonnage. ainsi que les performances désirées. laisse apparaitre une erreur statique assez importante sur u (la vitesse longitudinale) et un dépassement sur z (l’altitude). Pour remédier à ces imperfections. Avec ce correcteur. Ainsi. Dans l’avenir l’objectif est d’utiliser la méthode LPV polytopique pour faire une synthèse de correcteur à période variable. Tout d’abord un correcteur H∞ a été synthétisé qui donne des résultats très satisfaisants sur le modèle linéaire. pour les vitesses angulaires : avec η˙2 = Jc2 (η2 )ν2 (3. 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.11) . Le développement des calculs permet d’aboutir à une relation du type : Md ν˙ = Gd (ν)ν + Γ (3.10) −→ avec H(C) = m(CG ∧ VC ) + IC ν2 le moment cinétique au point C.5) où Jc1 (η2 ) correspond à la matrice de passage du référentiel inertiel (où sont exprimées les vitesses linéaires u.Annexe 1 : Détails des équations régissant le mouvement du sous-marin Etude cinématique La trajectoire du véhicule est donnée par la relation suivante : η˙1 = Jc1 (η2 )ν1 (3.7)  1 sin φ tan θ cos φ tan θ cos φ − sin φ  Jc2 (η2 ) =  0 0 sin φ/ cos θ cos φ/ cos θ (3.9) Γ1 étant la somme des forces appliquées au sous-marin. On applique également les lois de la mécanique des solides : ˙ Γ2 = H(C) /<0 + VC ∧ (mVG ) (3.6) De la même façon.8)  Etude dynamique • Dynamique d’un corps rigide On applique le premier principe de la dynamique au centre de gravité G du sous-marin : Γ1 = mV˙ G/<0 (3. v et w) au référentiel local (où sont exprimées les positions x. on obtient le résultat 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 à l’action de la masse d’eau ajoutée ainsi qu’aux frottements visqueux du fluide sur le corps en mouvement. ∆ etant le volume immergé) et en projetant dans le repère local lié au véhicule. on peut formuler les efforts hydrodynamiques de la manière suivante : m(v − pzG + rxG ) −m(u + qzG − ryG ) 0 −Ixy p + Iyy q − Iyz r −Ixx p + Ixy q + Ixz r 0        .avec : Md la matrice d’inertie due à la dynamique du système :  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 appliquées au véhicule : " −→ # 03x3 mSν1 + ν2 ∧ CG Gd (ν) = −→ mSν1 + ν2 ∧ CG S(IC ν2 ) 0 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 poussée d’Archimède En ajoutant la contribution du poids (F = mg) et celle de la poussée d’Archimède (FA = ρ∆g. D’une façon générale. Ils ne peuvent pas être obtenus théoriquement et l’estimation des coefficients est très mauvaise (marge de connaissance de 50 à 70%). ? Yur Yuv Yup Zuw Zuq Luv Lur Lup Muw Muq Nuv Nur Nup des termes de portance.7∗N ∗DH L’expression des efforts de porpulsion étant assez complexe . Reste maintenant à calculer l’angle γ. dont dépend l’expression des efforts Va . J 3 ). Cette vitesse permet de calculer le coefficient d’avance : J = NVDaH avec Va la vitesse d’avance ( Va = u + q ∗ zg ).24. elle ne sera pas détaillée ici. ? 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. tangente à la surfac dont les expressions sont les suivantes : fn = (β − α) ∗ vr2 ∗ zb2 (3. p ce qui permet de calculer la vitesse de rotation des pales de l’hélice : N = consigne/P x ∗ 2. J 2 . ? Lp|p| est un terme d’amortissement en roulis. de propulsion : gamma = arctan 0.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 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 d’eau ajoutée lors de la dérivation de la vitesse. On peut alors calculer le coefficient de poussée : Kt = f (J. Une consigne sous forme de poussée est fournie par le correcteur. • Propulsion par l’hélice La propulsion principale de l’engin est assurée par une hélice placée dans l’axe du véhicule. • Forces dues aux gouvernes Les gouvernes exercent deux forces : la force de portance fn normale à la surface de l’aileron et la force de trainée ft .12) . ? zb2 : coefficient dépendant de la surface des gouvernes. ? α : l’angle d’incidence du sous-marin dans la direction considérée.01 + 1.et ft = (0.5) (3. .1 ∗ (β − α)2 ∗ vr2 ∗ (zb2 /2. et Ox et Oy pour les gouvernes verticales. Il suffit ensuite de projeter ces forces sur les axes Ox et Oz pour les gouvernes horizontales.13) avec : ? β : l’angle d’inclinaison de la gouverne. ? vr : la vitesse de l’eau sur l’aileron. y.24^2*Dh^2*Qc0*Px). beta2. Kt3u=Kt3*3*u0^2/(2.%phi (Yup*u0*A12+Lup*u0*A14+Nup*u0*A16). q.%z (Zuw*u0*A13+Muw*u0*A15-u0*(zb2+zb1)*A13+PATS1*u0*zb2*A15+paght1*u0*zb1*A15). reflin=[beta10..%theta (m_nominal*u0*A13+Zuq*u0*A13+Muq*u0*A15+k0*Qc0*Zg*(-Kt1u+Kt2u-Kt3u)*A11). r] comande:U= [beta1. Kt2Qc=Kt2*u0^2/(2. yd3prim = pagvb3 * yd3.490246. Qc0lin=0. p.. u. delta1. %parametres: Kt0=0.24*Dh*sqrt(Qc0*Px)). gouv_avant.%delta1 (k0*(Kt0-Kt1Qc+Kt2Qc-Kt3Qc+Qc0*(Kt1Qc/(2*Qc0)-Kt2Qc/Qc0+Kt3Qc*3/(2*Qc0)))*A11). Kt2=0. delta10=0. Kt1Qc=Kt1*u0/(2.%y (Yuv*u0*A22+Luv*u0*A24+Nuv*u0*A26-u0*(yd3-yd1)*A22).%p (-(m_nominal-rho*delta)*g*A11-(Zg*m_nominal-Zf*rho*delta)*g*A15). Bu=[(u0^2*zb1*A13+u0^2*zb1prim*A14-paght1*u0^2*zb1*A15).391137.%v . %% model nominal %vecteur correspondant au derivee de chacune des vitesses lineaires et angulaires Au=[ 0.%w ((m_nominal-rho*delta)*g*A12-(Zg*m_nominal-Zf*rho*delta)*g*A14). beta20. yd3pp = pagvb1 * yd3. . z.Annexe 2 : Détails des matrices de la représentation d’état %% % % % Systeme linearise Etat X=[x. phi.24^2*Dh^2*Qc0*Px). Kt1=0.*(k0*Qc0*(Kt0-Kt1Qc+Kt2Qc-Kt3Qc))). Kt2u=Kt2*2*u0/(2. propulsion] beta10=0.%q 0. Av=[ 0. w. Kt3=0. beta20=0.24^3*Dh^3*(Qc0*Px)^(3/2)). Kt1u=Kt1/(2.%psi (-m_nominal*u0*A12+m_nominal*Zg*u0*A14+Yur*u0*A12+Lur*u0*A14+Nur*u0*A16)]. Qc] [gouv_arriere_hor. gouv_arriere_vert. v.%beta2 (u0^2*(yd3-yd1)*A12-u0^2*(yd1prim+yd3prim)*A14+(yd1pp+yd3pp)*u0^2*A16+A16*yd2pp/(rho+PI+Dh^2).%v 0.. zb1prim = (paght2+paghb2)*zb1.%u 0.%x (2*Xuu*u0*A21+k0*Qc0*(-Kt1u+Kt2u-Kt3u)*A21). theta.24*Dh*sqrt(Qc0*Px)). yd1prim = pagvh3 * yd1. Kt3Qc=Kt3*u0^3/(2..%Qc ]. delta10. psi.369516.182464.24^3*Dh^3*(Qc0*Px)^(3/2)).%x (2*Xuu*u0*A11+k0*Qc0*(-Kt1u+Kt2u-Kt3u)*A11). Qc0lin].%y (Yuv*u0*A12+Luv*u0*A14+Nuv*u0*A16-u0*(yd3-yd1)*A12).%u 0.%beta1 (u0^2*zb2*A13-PATS1*u0^2*zb2*A15). yd2pp = pagj1 * yd2. yd1pp = pagvh1 * yd1. %y (Yuv*u0*A42+Luv*u0*A44+Nuv*u0*A46-u0*(yd3-yd1)*A42).%q 0.%Qc ].%Qc ]..%x (2*Xuu*u0*A51+k0*Qc0*(-Kt1u+Kt2u-Kt3u)*A51)..%u 0..%deltA4 (k0*(Kt0-Kt1Qc+Kt2Qc-Kt3Qc+Qc0*(Kt1Qc/(2*Qc0)-Kt2Qc/Qc0+Kt3Qc*3/(2*Qc0)))*A41).%v 0.%phi (Yup*u0*A22+Lup*u0*A24+Nup*u0*A26).. . Aw=[ 0..%u 0.%deltA3 (k0*(Kt0-Kt1Qc+Kt2Qc-Kt3Qc+Qc0*(Kt1Qc/(2*Qc0)-Kt2Qc/Qc0+Kt3Qc*3/(2*Qc0)))*A31).%v 0.%w ((m_nominal-rho*delta)*g*A42-(Zg*m_nominal-Zf*rho*delta)*g*A44).%u 0.%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).%theta (m_nominal*u0*A33+Zuq*u0*A33+Muq*u0*A35+k0*Qc0*Zg*(-Kt1u+Kt2u-Kt3u)*A31)..%p (-(m_nominal-rho*delta)*g*A31-(Zg*m_nominal-Zf*rho*delta)*g*A35).%w ((m_nominal-rho*delta)*g*A32-(Zg*m_nominal-Zf*rho*delta)*g*A34)....%v 0. Bv=[(u0^2*zb1*A23+u0^2*zb1prim*A24-paght1*u0^2*zb1*A25). Bp=[(u0^2*zb1*A43+u0^2*zb1prim*A44-paght1*u0^2*zb1*A45).%y (Yuv*u0*A52+Luv*u0*A54+Nuv*u0*A56-u0*(yd3-yd1)*A52).*(k0*Qc0*(Kt0-Kt1Qc+Kt2Qc-Kt3Qc))).%psi (-m_nominal*u0*A22+m_nominal*Zg*u0*A24+Yur*u0*A22+Lur*u0*A24+Nur*u0*A26)].. Aq=[ 0. Ap=[ 0.%beta1 (u0^2*zb2*A43-PATS1*u0^2*zb2*A45).*(k0*Qc0*(Kt0-Kt1Qc+Kt2Qc-Kt3Qc)))..%beta2 (u0^2*(yd3-yd1)*A22-u0^2*(yd1prim+yd3prim)*A24+(yd1pp+yd3pp)*u0^2*A26+A26*yd2pp/(rho+PI+Dh^2). .%beta2 (u0^2*(yd3-yd1)*A32-u0^2*(yd1prim+yd3prim)*A34+(yd1pp+yd3pp)*u0^2*A36+A36*yd2pp/(rho+PI+Dh^2).%z (Zuw*u0*A33+Muw*u0*A35-u0*(zb2+zb1)*A33+PATS1*u0*zb2*A35+paght1*u0*zb1*A35).%z (Zuw*u0*A53+Muw*u0*A55-u0*(zb2+zb1)*A53+PATS1*u0*zb2*A55+paght1*u0*zb1*A55).%z (Zuw*u0*A43+Muw*u0*A45-u0*(zb2+zb1)*A43+PATS1*u0*zb2*A45+paght1*u0*zb1*A45). Bw=[(u0^2*zb1*A33+u0^2*zb1prim*A34-paght1*u0^2*zb1*A35). .%beta1 (u0^2*zb2*A33-PATS1*u0^2*zb2*A35).%p (-(m_nominal-rho*delta)*g*A41-(Zg*m_nominal-Zf*rho*delta)*g*A45).%x (2*Xuu*u0*A31+k0*Qc0*(-Kt1u+Kt2u-Kt3u)*A31).%w .%deltA2 (k0*(Kt0-Kt1Qc+Kt2Qc-Kt3Qc+Qc0*(Kt1Qc/(2*Qc0)-Kt2Qc/Qc0+Kt3Qc*3/(2*Qc0)))*A21).%x (2*Xuu*u0*A41+k0*Qc0*(-Kt1u+Kt2u-Kt3u)*A41).%Qc ].*(k0*Qc0*(Kt0-Kt1Qc+Kt2Qc-Kt3Qc))).%psi (-m_nominal*u0*A42+m_nominal*Zg*u0*A44+Yur*u0*A42+Lur*u0*A44+Nur*u0*A46)].%q 0.%q 0.%phi (Yup*u0*A32+Lup*u0*A34+Nup*u0*A36).0.%w ((m_nominal-rho*delta)*g*A22-(Zg*m_nominal-Zf*rho*delta)*g*A24).%y (Yuv*u0*A32+Luv*u0*A34+Nuv*u0*A36-u0*(yd3-yd1)*A32).%phi (Yup*u0*A42+Lup*u0*A44+Nup*u0*A46).%theta (m_nominal*u0*A43+Zuq*u0*A43+Muq*u0*A45+k0*Qc0*Zg*(-Kt1u+Kt2u-Kt3u)*A41).%z (Zuw*u0*A23+Muw*u0*A25-u0*(zb2+zb1)*A23+PATS1*u0*zb2*A25+paght1*u0*zb1*A25).%psi (-m_nominal*u0*A32+m_nominal*Zg*u0*A34+Yur*u0*A32+Lur*u0*A34+Nur*u0*A36)].%beta1 (u0^2*zb2*A23-PATS1*u0^2*zb2*A25)..%beta2 (u0^2*(yd3-yd1)*A42-u0^2*(yd1prim+yd3prim)*A44+(yd1pp+yd3pp)*u0^2*A46+A46*yd2pp/(rho+PI+Dh^2). %beta1 (u0^2*zb2*A53-PATS1*u0^2*zb2*A55). Atheta.%q 0.%theta (m_nominal*u0*A53+Zuq*u0*A53+Muq*u0*A55+k0*Qc0*Zg*(-Kt1u+Kt2u-Kt3u)*A51). .%u 0. 0 0]. Aphi. 0 0 0]. Bq=[(u0^2*zb1*A53+u0^2*zb1prim*A54-paght1*u0^2*zb1*A55). Cs = eye(12). Eq = [u0.%theta (m_nominal*u0*A63+Zuq*u0*A63+Muq*u0*A65+k0*Qc0*Zg*(-Kt1u+Kt2u-Kt3u)*A61). Apsi.. Aw’. Bq’.*(k0*Qc0*(Kt0-Kt1Qc+Kt2Qc-Kt3Qc))). . . 0.%phi (Yup*u0*A52+Lup*u0*A54+Nup*u0*A56).%p (-(m_nominal-rho*delta)*g*A61-(Zg*m_nominal-Zf*rho*delta)*g*A65).%q 0. 0 1]. 0.%x (2*Xuu*u0*A61+k0*Qc0*(-Kt1u+Kt2u-Kt3u)*A61).%psi (-m_nominal*u0*A62+m_nominal*Zg*u0*A64+Yur*u0*A62+Lur*u0*A64+Nur*u0*A66)].%delta1 (k0*(Kt0-Kt1Qc+Kt2Qc-Kt3Qc+Qc0*(Kt1Qc/(2*Qc0)-Kt2Qc/Qc0+Kt3Qc*3/(2*Qc0)))*A61).. beta2.*(k0*Qc0*(Kt0-Kt1Qc+Kt2Qc-Kt3Qc))).%Qc ]. Ds = zeros(12..((m_nominal-rho*delta)*g*A52-(Zg*m_nominal-Zf*rho*delta)*g*A54).%z (Zuw*u0*A63+Muw*u0*A65-u0*(zb2+zb1)*A63+PATS1*u0*zb2*A65+paght1*u0*zb1*A65).%beta2 (u0^2*(yd3-yd1)*A62-u0^2*(yd1prim+yd3prim)*A64+(yd1pp+yd3pp)*u0^2*A66+A66*yd2pp/(rho+PI+Dh^2).%delta1 (k0*(Kt0-Kt1Qc+Kt2Qc-Kt3Qc+Qc0*(Kt1Qc/(2*Qc0)-Kt2Qc/Qc0+Kt3Qc*3/(2*Qc0)))*A51). Br’]. 0 0 0 0 .4). Bu’.%beta2 (u0^2*(yd3-yd1)*A52-u0^2*(yd1prim+yd3prim)*A54+(yd1pp+yd3pp)*u0^2*A56+A56*yd2pp/(rho+PI+Dh^2).0. Bv’.%psi (-m_nominal*u0*A52+m_nominal*Zg*u0*A54+Yur*u0*A52+Lur*u0*A54+Nur*u0*A56)]. 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]. Ar=[ 0.. Aq’. 0.%p (-(m_nominal-rho*delta)*g*A51-(Zg*m_nominal-Zf*rho*delta)*g*A55). 0 0 0 0 .%v 0. %matrice de la representation d’etat As = [Ax. 0..%y (Yuv*u0*A62+Luv*u0*A64+Nuv*u0*A66-u0*(yd3-yd1)*A62). Az. 0.. delta1. 0. Av’.. u0 0].%beta1 (u0^2*zb2*A63-PATS1*u0^2*zb2*A65). Au’.%phi (Yup*u0*A62+Lup*u0*A64+Nup*u0*A66).. Br=[(u0^2*zb1*A63+u0^2*zb1prim*A64-paght1*u0^2*zb1*A65).%Qc ]. 1] Bs = [0 0 0 0. Ay. 0. Bw’. Ar’]. %[beta1. Bp’. 0 0 0 0 . 0]. (m_nominal-rho*delta)*g. Ap’.%w ((m_nominal-rho*delta)*g*A62-(Zg*m_nominal-Zf*rho*delta)*g*A64). 0. 0 0 0 0 . 0 0]. 0 0 0 0 . Qc. 2 0 0 5 10 15 20 25 30 35 40 45 50 Fig. 3. 3.8 0.4 0.6 0.3 – u (vitesse longitudinale) obtenue en simulation avec le correcteur H∞ sur le modèle linéaire (en bleu) et sur le modèle non linéaire (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.4 – z (altitude) obtenue en simulation avec le correcteur H∞ sur le modèle linéaire (en bleu) et sur le modèle non linéaire (en vert) ainsi que consigne (en rouge) .Annexe 3 : Résultats de simulation avec le correcteur H∞ : zooms 1 0. 3.6 – z (altitude) obtenue en simulation avec le correcteur LP V sur le modèle linéaire (en bleu) et sur le modèle non linéaire (en vert) ainsi que les consignes (en rouge) .4 1. 3.4 0.8 0.2 0 0 5 10 15 20 25 30 35 40 45 50 Fig.6 0.Annexe 4 : Résultats de simulation avec le correcteur LP V polytopique : zooms 1.5 – u (vitesse longitudinale) obtenue en simulation avec le correcteur LP V sur le modèle linéaire (en bleu) et sur le modèle non linéaire (en vert) ainsi que les consignes (en rouge) 45 40 35 30 25 20 15 10 5 0 −5 0 20 40 60 80 100 120 Fig.2 1 0. 3. consigne en rouge . z (altitude).7 – Réponses temporelles obtenues avec le correcteur LP V polytopique pour u (vitesse longitudinale.70% de variation sur la masse Fig. p (vitesse de roulis) et q (vitesse de tangage).Annexe 5 : Correcteur LP V polytopique avec + ou . Simulation sur le modèle linéaire (en bleu) et sur le modèle non linéaire (en vert) . 16 :345–356. L. A robust controller design method and stability analysis of an underactuated underwater vehicle. Commande robuste des systèmes à paramètres variables.Bibliographie A. ENSAE. Daniel Simon. (2002). (1998). (2004). M. Apkarian. Silvestre. M. Guidance and control of Ocean Vehicles. J. Robust control/scheduling codesign : application to robot control. 43 :1997–2008. Automatica. (2003). Integrated Control and Real-Time Scheduling.-M. (2006). Cervin.W. On the discretization of LMI-synthesized Linear Parameter-varying Controllers. (1996).S. 36 . Dynamic Positioning and Way-Point Tracking of Underactuated AUVs in the Presence of Ocean Currents. In IEEE Real Time and Embdded Technology and applications Symposium. Apkarian. P. A. 6 :21–32. (1994). In Conference on decision and control. A. (2007). BIANNIC. IEEE Transactions on control systems technologiy. P. S. P. International Journal of Applied Mathematics and Computer Sciences. automatica. M. C. Control Engineering Practice. PhD thesis. David Robert. (2005). Lau. 33 :655–661. Switched seesaw control for the stabilization of underactuated vehicles. Pedro Aguiar. Fossen. S. Pedro Aguiar. I. T. C. PhD thesis. 12 :1501–1509. Lund Institute of Technology. A. P. A. Chin. E. João P. A. G. Hespanha. John Wiley & Sons Ltd. (1997). S. P. Advanced Gain-Scheduling Techniques for Uncertain Systems. Control of the INFANTE AUV using gain scheduled static output feedback. O. 95 :48–74. PhD thesis. Sur la commande robuste de suspension automobiles en vue du control global de chassis. (2007). (2006). (2005). D. A. PhD thesis.Henriksson.A. Control Engineering Practice. 12 :1511–1520. (2007). Automatica. F. D. D. Pascal Gahinet. Reduced order H∞ control of an autonomous underwater vehicle. Feng. R. Sala. sensor networks. Robert. automatica. Paley. Ecole nationale supérieure des Mines de Paris. Proceedings of the IEEE. . INPG. Contribution à l’interaction commande / ordonnancement. S. Pierre Apkarian. 41 :2077–2082. (2005). (1995). L.Leonard. F. Z. R. F. D. S. and ocean sampling. G. Contribution à la conception des sous-marins autonomes : architecture des capteurs d’altitude. Collective motion. Santos. A. Resource-Constrained Embedded Control and Computing Systems.E. A. PhD thesis. (2004). Self-scheduled H∞ Control of Linear Parameter-varying Systems : a design Example. Computer control under time-varying samplin period : An LMI gridding approach. B. et commande référencées capteurs. R. (1995). INPG. D. 31 :1251–1261. PhD thesis. N. A. Zin. Department of Automatic Control Lund University. Documents Similar To rapport_master_Roche.pdfSkip carouselcarousel previouscarousel nextPFE_Présentation MASTERFOODSSerieDynamique.pdfPixsys ATR243Travaux Dirigés Automatismes Industriels GE 2Manuel Graphe Dependances CalculThese Ampere 2009 Estimation Robustesyst Points ChocsLes Systèmes Automatisés - TD 1 ( Correction )Automatique i Tp2Planning Des Examens Du S4 S6 Licence S2 Master Departement Electrom Canique 2017meca_kep_cons.pdfCours Regulation quemeca_sys2cdyn.pdfCpn 2000Auto Classique Optimisation.hinfcritère de choix.pdf-Fac-T-LMD-M-Master Aautomatique des SystèmesAutomatique_linéaire_analogique022 IB ATPL Tome 2 DRAFT.pdfAUTOMATIQUEEtude du moteur à Courant Continu par retour d’état.pdfA6.matraycrAutoL6 (1)stabilité rapidité précisionAutomatique - Intro[1]cours5.pdfPolycopié (1)132La régulationCours Complet Regulation Automatique filière electrotechnique HEIG 288pMore From elmerkhSkip carouselcarousel previouscarousel nextGetreuer-slides-cmex.pdfMY S-Function prest.pptEK0-StabTwoStage.pdfDAMECH-MOKHTARIAdaptative_interconnected.pdfwavelet1.pdfThese_VF_Ayan_Mahamoud_Diagnostic.pdfAlazard_2248Asservissement_moteur_H04SPEED SENSORLESS CONTOL WITH PARAMETER ESTIMATION.pdfvictorhugo.docxIntro MatlabAdaptative_interconnected.pdfBouaraki MouloudSystemes_lineaires_bouclesReal-Time Attitude and Orbit Control System of a Small LEO SatellCours1-VPtd_matlab0574742801575098156983074505542058tel-00005733recueil-exercices-075wavelet_1DBlanke__M._y_Frei__Cfa1_sjrjgp_ucf4-2-701567150Footer MenuBack To TopAboutAbout ScribdPressOur blogJoin our team!Contact UsJoin todayInvite FriendsGiftsLegalTermsPrivacyCopyrightSupportHelp / FAQAccessibilityPurchase helpAdChoicesPublishersSocial MediaCopyright © 2018 Scribd Inc. .Browse Books.Site Directory.Site Language: English中文EspañolالعربيةPortuguês日本語DeutschFrançaisTurkceРусский языкTiếng việtJęzyk polskiBahasa indonesiaSign up to vote on this titleUsefulNot usefulYou're Reading a Free PreviewDownloadClose DialogAre you sure?This action might not be possible to undo. Are you sure you want to continue?CANCELOK
Copyright © 2024 DOKUMEN.SITE Inc.