Skip to content

Commit

Permalink
16 septembre
Browse files Browse the repository at this point in the history
  • Loading branch information
Florian Sansou committed Sep 16, 2024
1 parent ab9da5e commit 855cc11
Show file tree
Hide file tree
Showing 9 changed files with 98 additions and 45 deletions.
2 changes: 1 addition & 1 deletion chapters/Chapter2.tex
Original file line number Diff line number Diff line change
Expand Up @@ -1022,7 +1022,7 @@ \subsection{Dynamique linéarisée en présence de vent}
\end{algorithm}

\newpage
\section{Conclusion du Chapitre \ref{chap:model}}
\section{Conclusion}

Le point important de ce chapitre est l'étude du modèle de drone convertible. La manipulation des équations, avec l'exposition des surfaces de contrôle virtuelles et l'obtention de la dynamique du drone, nous ont permis de clarifier le modèle, qui devient la base préliminaire pour toutes les lois de contrôle.

Expand Down
24 changes: 11 additions & 13 deletions chapters/Chapter3.tex
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,9 @@ \chapter{Travail préliminaire : commande hybride de drone}
\section{Motivation}
En prenant en compte les capacités d'un \textit{tailsitter}, il est légitime de se poser la question du mode de vol devant être utilisé pour rejoindre un point. Effectivement, le drone a la possibilité de se déplacer en stationnaire ou bien en vol d'avancement. Lors d'un déplacement en stationnaire, le drone est vertical donc il se retrouve fortement sujet aux perturbations. Il est donc nécessaire d'avoir une grande région d'attraction autour de la position d'équilibre pour assurer un rejet des perturbations et une stabilisation. Lors d'un vol d'avancement, le drone se trouve dans une configuration proche d'une aile volante. Ainsi, il se trouve moins perturbé par les turbulences, dans la mesure où la surface projetée d'aile impactée par le flux d'air est plus faible. Toutefois, le drone doit voler à une vitesse assez importante pour être dans cette configuration donc il ne peut pas maintenir une position, mais seulement effectuer des cercles autour.

Nous nous concentrons dans ce chapitre uniquement au vol stationnaire. Il s'agit donc de proposer une stratégie de commande pour stabiliser le drone en position stationnaire. Cette stratégie repose sur une dynamique discrète définissant l'usage d'une première loi de commande non-linéaire présentée dans \cite{2020e-MicCenZacFra} et qui fournit une grande région d'attraction et d'une seconde loi basée sur la dynamique linéarisée et fournissant une agressivité supérieure pour réaliser l'approche finale.
\todo{agressivité}
Les deux contrôleurs sont réunis par un mécanisme hybride qui permet de conserver les performances en régime permanent de la conception linéarisée, avec la grande région d'attraction garantie par la conception non linéaire.
Nous nous concentrons dans ce chapitre uniquement au vol stationnaire. Il s'agit donc de proposer une stratégie de commande pour stabiliser le drone en position stationnaire. Cette stratégie repose sur une dynamique discrète définissant l'usage d'une première loi de commande non-linéaire présentée dans \cite{2020e-MicCenZacFra} et qui fournit une grande région d'attraction et d'une seconde loi basée sur la dynamique linéarisée et fournissant une convergence plus rapide vers la cible. Les deux contrôleurs sont réunis par un mécanisme hybride qui permet de conserver les performances en régime permanent de la conception linéarisée, avec la grande région d'attraction garantie par la conception non linéaire.
{ \color{blue}

Nous qualifions le contrôleur d'hybride car il possède deux dynamiques. Une dynamique continue qui assure le bouclage, il s'agit précisément de deux lois de commande qui sont exécuté simultanément et d'une dynamique discrète laquelle sélectionner le contrôleur le plus adapté en fonction de la situation.
}

Notre solution est testée en simulant le modèle non linéaire complet.
Expand All @@ -39,12 +37,12 @@ \section{Contrôleur par retour d'état non-linéaire}
Nous déterminons $\boldsymbol{M}^r$ en paramétrant (de manière conservatrice) les pseudo-inverses à droite de $\boldsymbol{M}$ comme $\boldsymbol{M}^r := \boldsymbol{K}\boldsymbol{M}^\top ( \boldsymbol{M}\boldsymbol{K}\boldsymbol{M}^\top)^{-1}$, où la matrice $\boldsymbol{K} \in \real^{4\times 4}$ est symétrique et satisfait $\boldsymbol{M}\boldsymbol{K}\boldsymbol{M}^\top \geq \mathbb{I}_3$ (pour assurer l'inversibilité). Avec ce paramétrage, le but est de minimiser la norme de $\boldsymbol{F}\boldsymbol{M}^r = \boldsymbol{F} \boldsymbol{K}\boldsymbol{M}^\top ( \boldsymbol{M}\boldsymbol{K}\boldsymbol{M}^\top)^{-1}$, ce qui est bien obtenu en minimisant la norme de $\boldsymbol{F} \boldsymbol{K}\boldsymbol{M}^\top$, du fait que la contrainte sur $\boldsymbol{M}\boldsymbol{K}\boldsymbol{M}^\top \geq \mathbb{I}_3$ garantit que le facteur $( \boldsymbol{M}\boldsymbol{K}\boldsymbol{M}^\top)^{-1}$ ait une norme plus petite que 1.
En effectuant un complément de Schur, cette minimisation est obtenue en résolvant le programme semi-défini suivant :
\begin{align*}
& \min_{\boldsymbol{K}, \kappa} \kappa, \; \mbox{subject to:}
& \min_{\boldsymbol{K}, \kappa} \kappa, \; \mbox{sous condition:}
\; \boldsymbol{M} \boldsymbol{K} \boldsymbol{M}^\top\! \geq \!\mathbb{I}_3, \;
\begin{bmatrix}
\kappa \mathbb{I}_3 &\! \boldsymbol{F} \boldsymbol{K} \boldsymbol{M}^\top \\
\boldsymbol{M} \boldsymbol{K}^\top \boldsymbol{F}^\top &\! \kappa \mathbb{I}_3
\end{bmatrix}\! \geq\! 0,
\end{bmatrix}\! \geq\! 0, kappa > 0,
\end{align*}
lequel minimise $\kappa$ tout en assurant $\boldsymbol{F} \boldsymbol{K} \boldsymbol{M}^\top \boldsymbol{M} \boldsymbol{K}^\top \boldsymbol{F}^\top \leq \kappa^2 \mathbb{I}_3$. En résolvant cette optimisation, on obtient, pour les matrices spécifiques considérées,
\begin{align*}
Expand Down Expand Up @@ -73,7 +71,7 @@ \section{Contrôleur par retour d'état non-linéaire}
Enfin, par rapport à la solution proposée dans \cite{2020e-MicCenZacFra}, pour prendre partiellement en compte les effets de saturation énoncés dans la section~\ref{sec:saturation}, le bouclage décrit dans \cite{2020e-MicCenZacFra} a été augmenté d'une stratégie de saturation d'erreur ne permettant jamais à l'erreur de position $\boldsymbol{\rm e}_p$ utilisée dans \cite[eqn. (22)]{2020e-MicCenZacFra} de dépasser la valeur maximale de 3 mètres. Les autres gains de réglage nécessaires à la solution de \cite{2020e-MicCenZacFra} ont été sélectionnés comme $k_{pp} = 0.5$, $k_{pd} = 1.2$, $k_{ap} = 0.08$, $k_{ad} = 0.1$ et $k_{\Delta} = 1$.

La figure~\ref{fig_global_contol} montre la réponse du système en termes de positions, d'orientations (deux lignes du haut) et d'efforts des actionneurs (deux lignes du bas) lorsque le système part de la condition initiale $\boldsymbol{x(0)} = [\boldsymbol{p(0)}~ \boldsymbol{v(0)}~ \boldsymbol{q(0)}~ \boldsymbol{\omega_b(0)}]^\top = [0~0~0 ~ 0~0~0 ~0. 9140 ~0.1134~ -0.3728~ 0. 1134~ 0~ 0~ 0]^\top $ avec une position d'équilibre cible de $\boldsymbol{p_{\text{eq}}} = [4~5~6]^\top$ et $\boldsymbol{q_{\text{eq}}} = [\frac{\sqrt{2}}{2}~0~-\frac{\sqrt{2}}{2}~0]^\top$.
Une réponse adéquate peut être observée, laquelle reste assez éloignée des saturations des actionneurs (voir section~\ref{sec:saturation}). L'augmentation des gains peut accélérer la réponse, mais produit toutefois des oscillations d'attitude indésirables. Il est donc intéressant de combiner ce contrôleur non linéaire (qui fournit une grande région d'attraction) avec un contrôleur plus agressif, conçu sur la base de la dynamique linéarisée sans vent \eqref{eq:linearized}.
Une réponse adéquate peut être observée, laquelle reste assez éloignée des saturations des actionneurs (voir section~\ref{sec:saturation}). L'augmentation des gains peut accélérer la réponse, mais produit toutefois des oscillations d'attitude indésirables. Il est donc intéressant de combiner ce contrôleur non linéaire (qui fournit une grande région d'attraction) avec un contrôleur possédant une vitesse de convergence supérieure, conçu sur la base de la dynamique linéarisée sans vent \eqref{eq:linearized}.


\begin{figure}[ht!]
Expand All @@ -86,7 +84,7 @@ \section{Contrôleur par retour d'état non-linéaire}

\section{Contrôleur par retour d'état linéaire}
\label{sec:ctrlLin}
Sur la base des observations de la section précédente et étant donné une position cible correspondant à un équilibre $\boldsymbol{p_{\text{eq}}}, \boldsymbol{q_{\text{eq}}}$ tel que caractérisé dans l'équation~\ref{eq:equilibria}, nous concevons ici un contrôleur par retour d'état linéaire capable de produire une réponse plus agressive. Pour cela, nous nous concentrons sur la dynamique linéarisée \eqref{eq:linearized} et proposons une loi de commande de la forme :
Sur la base des observations de la section précédente et étant donné une position cible correspondant à un équilibre $\boldsymbol{p_{\text{eq}}}, \boldsymbol{q_{\text{eq}}}$ tel que caractérisé dans l'équation~\ref{eq:equilibria}, nous concevons ici un contrôleur par retour d'état linéaire capable de produire une réponse rapidement convergene. Pour cela, nous nous concentrons sur la dynamique linéarisée \eqref{eq:linearized} et proposons une loi de commande de la forme :
\begin{align}
\boldsymbol{u_{\text{lin}}} := \boldsymbol{u_{\text{eq}}} - \boldsymbol{K} \boldsymbol{\tilde x},
\label{eq:u_lin}
Expand All @@ -112,7 +110,7 @@ \section{Contrôleur par retour d'état linéaire}
\label{fig_linearize_conv}
\end{figure}

La figure \ref{fig_linearize_conv} montre une simulation commençant à l'origine avec un drone vertical et des vitesses linéaires et angulaires initiales sont nulles. La position cible est $\boldsymbol{p_{\text{eq}}} = [4,~5,~6]$ avec une stabilisation en vol stationnaire (drone vertical) avec $\beta = 0$. La ligne en pointillé représente la position de la cible sur chaque axe. Le dernier graphique montre la décroissance exponentielle souhaitable de $V$.
La figure \ref{fig_linearize_conv} montre une simulation commençant à l'origine avec un drone vertical et des vitesses linéaires et angulaires initiales nulles. La position cible est $\boldsymbol{p_{\text{eq}}} = [4,~5,~6]$ avec une stabilisation en vol stationnaire (drone vertical) avec $\beta = 0$. La ligne en pointillé représente la position de la cible sur chaque axe. Le dernier graphique montre la décroissance exponentielle souhaitable de $V$.
La figure \ref{fig_linearize_conv} montre, à la fois, la simulation du modèle complet (continue) \eqref{eq:dyna_orig} et du modèle non linéaire simplifié \eqref{eq:withouwind} (en pointillé), ce qui met en évidence des différences dans la phase transitoire.
Lorsqu'on fournit une position cible plus importante $\boldsymbol{p_{\text{eq}}} =[8,~9,~10]$(avec la même orientation), la condition initiale se situe en dehors du bassin d'attraction et une divergence apparaît, comme le montre la figure~\ref{fig_linearize_div}.

Expand All @@ -126,10 +124,10 @@ \section{Contrôleur par retour d'état linéaire}



\section{Conception d'une commande locale-globale }
\section{Conception d'une commande locale-globale}
\label{sec:ctrl_hyste}

Considérant les stratégies locales-globales présentées dans \cite[Ex. 1. 7]{65}, similaires à la solution présentée dans \cite{AndreettoFZ16}, nous utilisons un mécanisme hybride sélectionnant le contrôleur local agressif \eqref{eq:u_lin} (tant que l'état se trouve dans le bassin d'attraction de l'équilibre) ou le contrôleur non linéaire moins agressif \eqref{eq:u_nonlin}, qui fournit une plus grande région d'attraction (et peut être appelé, par abus de langage, le "contrôleur global"). À cette fin, nous ajoutons à l'état du contrôleur une variable d'état logique $\ell \in \{0,1\}$, qui régit le choix de l'entrée de contrôle entre \eqref{eq:u_nonlin} et \eqref{eq:u_lin} tel que :
Considérant les stratégies locales-globales présentées dans \cite[Ex. 1. 7]{65}, similaires à la solution présentée dans \cite{AndreettoFZ16}, nous utilisons un mécanisme hybride sélectionnant le contrôleur local avec une grande vitesse de convergence \eqref{eq:u_lin} (tant que l'état se trouve dans le bassin d'attraction de l'équilibre) ou le contrôleur non linéaire plus lent \eqref{eq:u_nonlin}, qui fournit une plus grande région d'attraction (et peut être appelé, par abus de langage, le "contrôleur global"). À cette fin, nous ajoutons à l'état du contrôleur une variable d'état logique $\ell \in \{0,1\}$, qui régit le choix de l'entrée de contrôle entre \eqref{eq:u_nonlin} et \eqref{eq:u_lin} tel que :
\begin{align}
\label{eq:u_hybrid}
\boldsymbol{u}=\boldsymbol{u}_{\text{hyb}} := \ell \boldsymbol{u}_{\text{nl}} + (1-\ell) \boldsymbol{u}_{\text{lin}}.
Expand Down Expand Up @@ -190,12 +188,12 @@ \section{Conception d'une commande locale-globale }
\end{figure}

Nous observons que sur la période $t \in \left[0,38\right]$, le drone
présente une convergence élégante mais lente vers la position cible souhaitée, en utilisant le contrôleur global ($\ell=1$). Dès lors, l'état discret $\ell$ entre dans l'ensemble $\mathcal{D}_1$ et le contrôleur local plus agressif est activé jusqu'à la convergence vers l'équilibre souhaité.
présente une convergence élégante mais lente vers la position cible souhaitée, en utilisant le contrôleur global ($\ell=1$). Dès lors, l'état discret $\ell$ entre dans l'ensemble $\mathcal{D}_1$ et le contrôleur local est activé jusqu'à la convergence vers l'équilibre souhaité, avec une vitesse plus élevée.

Pour obtenir des simulations réalistes, les mesures sont affectées par
le bruit des capteurs. La robustesse intrinsèque de la rétroaction hybride, établie dans \cite[Chapitre 7]{65}, est confirmée par le maintien des performances, malgré le bruit de mesure.

\section{Conclusion du Chapitre \ref{chap:hybrid}}
\section{Conclusion}

L'objectif principal de ce chapitre est de proposer un mécanisme hybride capable d'utiliser deux modes de contrôle d'un drone convertible, pour naviguer entre deux points.

Expand Down
2 changes: 1 addition & 1 deletion chapters/Chapter4.tex
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ \section{Résultats}
\label{fig_exp_centrage_arr}
\end{figure}

\section{Conclusion du Chapitre \ref{chap:3DOF}}
\section{Conclusion}
Nous avons décrit une maquette permettant de simuler le vol d'un drone convertible, DarkO, en soufflerie. L'objectif de cette maquette est de tester le système de contrôle sur une représentation fidèle de la dynamique longitudinale, tout en simulant la dynamique de translation. Nous avons également présenté un contrôleur linéaire du type retour dynamique de sortie basé sur une architecture proportionnelle-intégrale pour la stabilisation du vol stationnaire dans des conditions de vent constant. Les gains du contrôleur ont été obtenus à l'aide d'une optimisation non convexe. Les résultats des essais expérimentaux montrent qu'il est possible de stabiliser l'équilibre en vol stationnaire dans la plage de vitesse du vent testée.

Toutefois, d'autres architectures de contrôle devraient être étudiées à l'avenir pour traiter les oscillations indésirables. Ces résultats indiquent qu'il est nécessaire de tester cette architecture de commande sur un modèle complet à six degrés de liberté.
2 changes: 1 addition & 1 deletion chapters/Chapter5.tex
Original file line number Diff line number Diff line change
Expand Up @@ -467,7 +467,7 @@ \subsection{Résultats expérimentaux}



\section{Conclusion du Chapitre \ref{chap:LMI}}
\section{Conclusion}

\todo{reprendre}
Pour traiter de la synthèse d'un retour statique de sortie, nous peupouvons envisager deux approches étant donné le caractère non convexe et - difficile du problème. La première approche consiste à utiliser des outils d'optimisation non convexes pour directement optimiser les variables de décision du contrôleur, à savoir les matrices de gain. C'est ce qui est présenté dans le chapitre \ref{chap:3DOF} et \ref{chap:6DOF} en utilisant l’optimisation non-lisse et la fonction {\tt Systune} de Matlab. La seconde approche consiste à utiliser des outils d'optimisation non convexe, ici l'outil LMI, pour résoudre un problème qui ne l'est pas puisque BMI. Il s'agit alors de proposer un algorithme, ici itératif, de résolution du problème BMI en une succession de problèmes LMI. C'est donc par exemple l'approche développe dans \cite{Arzelier2018} qui a été implémentée et testée en simulation et expérimentalement sur le drone.
Expand Down
2 changes: 1 addition & 1 deletion chapters/Chapter6.tex
Original file line number Diff line number Diff line change
Expand Up @@ -407,7 +407,7 @@ \section{Vol expérimental en soufflerie ouverte}
\todo{Explication du dernier graphique}


\section{Conclusion du Chapitre \ref{chap:6DOF}}
\section{Conclusion}
Nous avons proposé un schéma de contrôle pour la stabilisation d'un \textit{tailsitter} lors d'un vol stationnaire en présence d'un vent constant inconnu. Notre bouclage contient une action intégrale et ne nécessite pas la mesure de la vitesse du vent. Les modèles paramétriques linéarisés se sont avérés être un instrument clé pour effectuer la synthèse d'un contrôleur robuste aux différents cas de vent.
Après avoir étudié les résultats de la simulation, nous avons mené une campagne de vols expérimentaux dans un environnement contrôlé pour valider notre solution de contrôle.

Expand Down
Loading

0 comments on commit 855cc11

Please sign in to comment.