Skip to content

Commit

Permalink
News
Browse files Browse the repository at this point in the history
  • Loading branch information
Florian Sansou committed Oct 2, 2024
1 parent 824d9c2 commit 00bffd3
Show file tree
Hide file tree
Showing 8 changed files with 90 additions and 41 deletions.
80 changes: 58 additions & 22 deletions biblio.bib

Large diffs are not rendered by default.

35 changes: 25 additions & 10 deletions chapters/Chapter1.tex
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
% LTeX: enabled=false
% LTeX: enabled=true
\chapter{Généralités sur les drones convertibles}
\minitoc
\label{chap:generalites}
Expand Down Expand Up @@ -275,17 +275,31 @@ \subsection*{Contrôleur LQR}
Bien que le contrôleur LQR présente généralement de bonnes propriétés de robustesse, l'optimalité n'est plus assurée si des erreurs de modélisation et des perturbations sont présentes dans le système. Une discussion détaillée et une comparaison entre le contrôle PID sans modèle et le contrôle LQR basé sur le modèle d'un \textit{tailsitter} est disponible dans \cite{BarthCondomines2018}.
Les auteurs de \cite{Lustosa2017LaP} ont proposé l'approche de séquencement des gains obtenus pour un ensemble de modèles linéaires. Cette architecture de contrôle optimise le gain K en boucle fermée afin de répondre aux exigences de contrôle de la vitesse et de l'attitude définies par l'utilisateur. Grâce à des simulations de vol et à des vols expérimentaux, les auteurs soulignent et prouvent qu'une seule matrice de gains LQR n'est pas suffisante pour stabiliser le \textit{tailsitter} dans toute son enveloppe de vol, ce qui justifie l'utilisation de méthodes de séquencement des gains.

\nomenclature[]{\(LQR\)}{Régulation linéaire quadratique}
{\color{blue}
Au vu des technologies de capteur embarqué sur un drone, il n'est pas possible d'obtenir directement l'état du drone nécessaire à une commande LQR. Pour palier ce problème, une classe de contrôleur a été développé : le contrôleur LQG, linéaire-quadratique-gaussienne.
\begin{figure}[H]
\centerline{
\includegraphics[trim=0cm 0cm 0cm 0cm,clip,width=0.6\columnwidth]{figures/regulator.png}}
\caption{Schéma de commande LQG.}
\label{fig:LQG}
\end{figure}

\subsection*{Contrôleur non-linéaire}
Comme le montre la figure \ref{fig:LQG}, la commande LQG s'appui sur un estimateur d'état pour obtenir l'état du système à partir de la connaissance d'un modèle, de la commande appliqué et de la sortie.
\nomenclature[]{\(LQG\)}{Régulation linéaire-quadratique-gaussienne}
}

L'approche "inversion dynamique non-linéaire incrémentale" (INDI) utilise la connaissance de la dynamique d'un système. Une inversion incrémentale est réalisée pour obtenir les accélérations angulaires cibles. Théoriquement, le bouclage des accélérations angulaires élimine la sensibilité aux imperfections du modèle, ce qui augmente considérablement la robustesse du système par rapport à l'inversion dynamique non-linéaire conventionnelle \cite{Sieberling2010, Binz2019}. Ce contrôleur nécessite l'identification des actionneurs afin de régler les paramètres du contrôleur, telle que l'efficacité des actionneurs. Étant donné que l'efficacité des surfaces de contrôle aérodynamiques n'est pas constante pendant toute l'enveloppe de vol sur un \textit{tiltwing}, une méthode de programmation des gains a été mise au point \cite{smeurINDI,smeurINDITail}.
La limitation d'une telle loi de commande est la disponibilité et la qualité des accélérations angulaires. En effet, les capteurs mesurant la vitesse angulaire sont très bruités et nous sommes contraints de dériver ce signal pour obtenir les accélérations angulaires.

\subsection*{Contrôleur non-linéaire}
{\color{blue}
L'approche "inversion dynamique non-linéaire incrémentale" (INDI) utilise la connaissance de la dynamique d'un système pour réaliser la commande du système. Toutefois, elle est classée dans les commandes basées mesure (Figure \ref{fig:methodecmd}) car le modèle n'est pas nécessaire pour l'obtention et le réglage des gains du contrôleur. Une inversion incrémentale du modèle est réalisée pour obtenir les accélérations angulaires cibles. Théoriquement, le bouclage des accélérations angulaires élimine la sensibilité aux imperfections du modèle, ce qui augmente considérablement la robustesse du système par rapport à l'inversion dynamique non-linéaire conventionnelle \cite{Sieberling2010, Binz2019}. Ce contrôleur nécessite l'identification des actionneurs afin de régler les paramètres du contrôleur, telle que l'efficacité des actionneurs. Étant donné que l'efficacité des surfaces de contrôle aérodynamiques n'est pas constante pendant toute l'enveloppe de vol sur un \textit{tiltwing}, une méthode de programmation des gains a été mise au point \cite{smeurINDI,smeurINDITail}.
La limitation d'une telle loi de commande est la disponibilité et la qualité des accélérations angulaires. En effet, les capteurs mesurant la vitesse angulaire sont très bruités et nous sommes contraints de dériver ce signal pour obtenir les accélérations angulaires.
}


\subsection*{Contrôleur sans modèle basé mesure}

Contrairement à l'INDI basée sur l'inversion d'un modèle, la loi de commande sans modèle (MFC) \cite{Fliess_2013} nécessite peu de connaissances préalables du système contrôlé pour concevoir le contrôleur.
La loi de commande sans modèle (MFC) \cite{Safonov, Stefanovic, Fliess_2013} nécessite peu de connaissances préalables du système contrôlé pour concevoir le contrôleur.
On modélise la dynamique inconnue par une équation numérique, appelée modèle ultra-local :
\begin{align}
y_{m}^{(\nu)} = F_{y} + \lambda u.
Expand Down Expand Up @@ -346,7 +360,7 @@ \section{Méthodes de résolution}


\subsection*{Obtention des gains d'un PID par une méthode de placement de pôles \cite{WANG2008PID}}
Les contrôleurs PID sont très largement utilisés dans l'industrie. Le réglage des gains (proportionnel, intégral et dérivatif) est souvent réalisé à l'aide d'une méthode manuelle des valeurs. Toutefois, à l'aide d'un modèle, il est possible d'obtenir les gains qui assurent des critères de performance (rapidité et dépassement). Cette méthode a été proposée par \cite{WANG2008PID}.
Les contrôleurs PID sont très largement utilisés dans l'industrie. Le réglage des gains (proportionnel, intégral et dérivatif) est souvent réalisé à l'aide d'un ajustement manuel des valeurs. Toutefois, à l'aide d'un modèle, il est possible d'obtenir les gains qui assurent des critères de performance (rapidité et dépassement). Cette méthode a été proposée par \cite{WANG2008PID}.

Considérons un contrôleur PID de la forme :
\begin{align}
Expand Down Expand Up @@ -385,20 +399,21 @@ \subsection*{Obtention des gains d'un PID par une méthode de placement de pôle
L'équation \eqref{eq:simplifyPID} simplifie la conception du contrôleur PID dépendant d'un paramètre $K_{p}$. Par conséquent, le gain $K_{p}$ peut être déterminé pour ses valeurs positives à partir de la méthode du lieu racine. Selon le tracé des racines de l'équation caractéristique de la boucle fermée, nous sommes en mesure de déterminer la plage de $K_{p}$, de sorte que les racines se trouvent dans la région complexe requise.

\subsection*{Synthèse $H_{\infty}$}
La synthèse $H_{\infty}$ est une méthode qui sert à la conception de commandes optimales, en imposant des contraintes sur la norme $H_{\infty}$ d'un système \cite{1576856, ApkarianMulti}. En se basant sur une synthèse $H_{\infty}$, les auteurs de \cite{SunYang2009} ont obtenu la stabilisation longitudinale d'un \textit{tiltrotor}. En combinant une synthèse $H_{\infty}$ à une approche de séquencement des gains, les auteurs de \cite{DickesonMix2005, DickesonCifdaloz2006,DickesonMiles2007} ont proposé la stabilisation d'un \textit{tiltwing} sur l'ensemble de son enveloppe de vol.
La synthèse $H_{\infty}$ est une méthode qui sert à la conception de commandes optimales, en imposant des contraintes sur la norme $H_{\infty}$ d'un système \cite{DGKF89}. En se basant sur une synthèse $H_{\infty}$, les auteurs de \cite{SunYang2009} ont obtenu la stabilisation longitudinale d'un \textit{tiltrotor}. En combinant une synthèse $H_{\infty}$ à une approche de séquencement des gains, les auteurs de \cite{DickesonMix2005, DickesonCifdaloz2006,DickesonMiles2007} ont proposé la stabilisation d'un \textit{tiltwing} sur l'ensemble de son enveloppe de vol.

Pour résoudre un problème par synthèse $H_{\infty}$, il est nécessaire de mettre le modèle du système dans la structure classique, représentée sur la Figure \ref{fig:schemalft}.

\begin{figure}[ht!]
\centerline{
\includegraphics[trim=0cm 0cm 0cm 0cm,clip,width=0.5\columnwidth]{figures/lft.png}}
\caption{Architecture d'un contrôleur $H_{\infty}$.}
\caption{Forme standard.}
\label{fig:schemalft}
\end{figure}

L'objectif est de minimiser l'effet de la perturbation $w$ (cas le moins favorable possible) sur la variable de performance $z$, par le biais d'un contrôleur $u = K(s) y$. En d'autres termes, $K(s)$ est choisi de telle sorte que $\| F(P(s), K(s))\|_{\infty}$ soit minimisée, où $F(P(s), K(s))$ est la fonction de transfert de la perturbation $w$ vers le signal d'erreur $z$.
Dans ce formalisme, le contrôleur peut être de plusieurs formes PID, retour d'état ou de sortie, etc.

{\color{blue}
Les contraintes de structure rendent le problème non convexe ce qui nécessite l'utilisation d'un outil de synthèse basée sur l'optimisation non lisse. Dans ce formalisme, une structure de type PID peut être utilisé explicitement au moment de la synthèse pour optimiser les gains P, I et D à partir des contraintes $H_{\infty}$ \cite{1576856,ApkarianMulti}.
}
Nous pouvons aussi citer le travail de \cite{SNYDER2021106621} qui utilise une approche de contrôle $H_{\infty}$, ainsi qu'une représentation du système \textit{Linear Parameter Varying} (LPV). Cette représentation permet d'avoir la dynamique linéaire du drone sur l'ensemble du domaine de vol par interpolation des dynamiques paramétrées par la vitesse totale du drone.
\nomenclature[]{\(LPV\)}{Système linéaire à paramètres variants (\textit{Linear Parameter Varying})}

Expand Down
10 changes: 4 additions & 6 deletions chapters/Chapter3.tex
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,7 @@ \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 sur le 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.
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ées simultanément) et d'une dynamique discrète, laquelle sélectionne 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.
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ées simultanément) et d'une dynamique discrète, laquelle sélectionne 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.

Dans cette partie, nous allons nous concentrer sur la stabilisation stationnaire du drone. Ainsi, nous nous appuyons sur la dynamique simplifiée décrite dans la section \ref{sec:model_NL_simp}, avec la simplification $\boldsymbol{w} = 0$ qui permet d'obtenir la dynamique simplifiée sans vent \eqref{eq:withouwind}.

Expand Down Expand Up @@ -67,8 +64,9 @@ \section{Contrôleur par retour d'état non-linéaire}

Premièrement, pour obtenir un moment $\tau_{r,z}$ autour de l'axe $z_{\text{b}}$, nous utilisons principalement l'action différentielle de la poussée ; deuxièmement, un moment $\tau_{r,y}$ autour de l'axe $y_{\text{b}}$ est généré par une utilisation symétrique des deux volets, avec une grande efficacité ; enfin, un moment $\tau_{r,x}$ autour de l'axe $x_{\text{b}}$ provient d'une utilisation différentielle des volets.

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$.

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$.
{\color{red}$k_{pp}$ et $k_{pd}$ sont respectivement les termes proportionnel et dérivatif du suivi de la position. Ils peuvent correspondre a n'importe quelles valeurs positive. Ils sont sélectionnés pour former un polynôme caractéristique du second ordre avec des racines à partie réelle strictement négative. Il en est de même pour $k_{ap}$ et $k_{ad}$ qui représente la convergence de l'orientation. $k_{\Delta}$ est un terme permettant une convergence vers la force nécessaire pour vaincre la gravité.
}
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$.

\begin{figure}[ht!]
Expand Down
4 changes: 2 additions & 2 deletions chapters/Chapter4.tex
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ \subsection{Schéma de synthèse $H_{\infty}$}

La sortie de mesure $\boldsymbol{y}$ est utilisée pour la rétroaction, l'entrée $\boldsymbol{u}$ est la somme de l'entrée intégrale $\boldsymbol{\Sigma} \boldsymbol{x}_{c}$ et de l'action proportionnelle $\boldsymbol{K} \boldsymbol{e}$. La sortie $\boldsymbol{z}$ correspond aux signaux de performance de sortie à contrôler ($\boldsymbol{e}$, $\boldsymbol{w}$, $\boldsymbol{u}$, $\boldsymbol{y}$, $\boldsymbol{r}_{p}$).

Nous notons la marge de module d'une matrice de transfert $s \mapsto T_{v \rightarrow z}$ comme $\Delta_m(T_{v \rightarrow z}) = \min\limits_{\omega\in R} \sigma_{\min}(T_{v \rightarrow z}(j\omega))$. La fonction de sensibilité en sortie est définie par $T_{\nu \rightarrow e}=(\mathbb{I}_{11}+\boldsymbol{P}\boldsymbol{F})^{-1}$ de dimensions 11\texttimes11, telle que $\lVert T_{\nu \rightarrow e} \rVert _{\infty}=\Delta_m(T_{\nu \rightarrow e})^{-1} $ et la fonction de sensibilité en entrée $T_{d \rightarrow u}=(\mathbb{I}_{4}+\boldsymbol{F}\boldsymbol{P})^{-1}$ de dimensions 4\texttimes4, est définie par $\lVert T_{d \rightarrow u} \rVert _{\infty}=\Delta_m(T_{d \rightarrow u})^{-1}$.
Nous notons la marge de module d'une matrice de transfert $s \mapsto T_{v \rightarrow z}$ comme $\Delta_m(T_{v \rightarrow z}) = \min\limits_{\omega\in R} \sigma_{\min}(\frac{1}{T_{v \rightarrow z}(j\omega)})$. La fonction de sensibilité en sortie est définie par $T_{\nu \rightarrow e}=(\mathbb{I}_{11}+\boldsymbol{P}\boldsymbol{F})^{-1}$ de dimensions 11\texttimes11, telle que $\lVert T_{\nu \rightarrow e} \rVert _{\infty}=\Delta_m(T_{\nu \rightarrow e})^{-1} $ et la fonction de sensibilité en entrée $T_{d \rightarrow u}=(\mathbb{I}_{4}+\boldsymbol{F}\boldsymbol{P})^{-1}$ de dimensions 4\texttimes4, est définie par $\lVert T_{d \rightarrow u} \rVert _{\infty}=\Delta_m(T_{d \rightarrow u})^{-1}$.
Par conséquent, la minimisation de la norme $H_{\infty}$ de $T_{\nu \rightarrow e}$ ou de $T_{d \rightarrow u}$ correspond à l'augmentation des marges de module en entrée et en sortie. Étant donné que le système $\boldsymbol{P}$ est MIMO, nous accordons de l'importance aux fonctions de sensibilité en entrée et en sortie qui ne coïncident pas, car $\boldsymbol{P}$ et $\boldsymbol{F}$ ne commutent pas.

Nous définissons aussi la matrice de transfert $T_{\nu \rightarrow u}$ de dimensions 4\texttimes11 liée à l'impact du bruit de mesure $\nu$ sur la commande $\boldsymbol{u}$, et $T_{d \rightarrow y}$ de dimensions 11\texttimes4 représentant l'impact de la perturbation en entrée $\boldsymbol{d}$ sur la sortie du système $\boldsymbol{y}$.
Expand All @@ -149,7 +149,7 @@ \subsection{Schéma de synthèse $H_{\infty}$}
W_{4} = 0.5.
\end{align}

Ces valeurs ont été sélectionnées pour obtenir un bon compromis entre le rejet des perturbations et la vitesse de convergence du système.
Ces valeurs ont été sélectionnées pour obtenir un bon compromis entre le rejet des perturbations et la robustesse de la boucle fermée au travers de la marge de module.

Il est maintenant possible de former le problème d'optimisation multicritère suivant, en concaténant les contraintes exprimées sous la forme de \eqref{eq:formecontrainte}
\begin{align*} \label{eq:pb_optim}
Expand Down
Loading

0 comments on commit 00bffd3

Please sign in to comment.