Projet quasimodo fini

This commit is contained in:
Tournesol02 2026-04-16 01:35:33 +02:00
parent 69dc7dd725
commit fa9e76809f
6 changed files with 111 additions and 63 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -3,11 +3,10 @@
\psection{Introduction}
\vspace{0.25cm}
Le bille sur rail est une manipulation où le but est de stabiliser une bille sur un rail. Le rail est commandé par une tension, et les données lues sont l'angle du rail et la position de la bille. La position est achevé à l'aide d'un lecture d'impedance.
\vspace{0.5cm}
\textbf{schèma de forces de la bille sur rail:}
\begin{center}
\textbf{Schèma de forces de la bille sur rail:}
\end{center}
\begin{center}
\includegraphics{./Illustrations/Schema_Forces.png}
\end{center}
@ -15,32 +14,72 @@ Le bille sur rail est une manipulation où le but est de stabiliser une bille su
\newpage
\section{Identification du système: Rail}
\subsection{Analyse du schèma bloc et setup}
Nous avons remarqué que l'identification du système se fait en bouclé fermé. Voici le schèma bloc désignant le système que nous pouvons manipuler: \{Sett inn bilde av schèma bloc, système rail\}
Nous avons remarqué que l'identification du système se fait en bouclé fermé. Voici le schèma bloc désignant le système que nous pouvons manipuler:
\tikzstyle{block} = [draw, fill=white, rectangle,
minimum height=3em, minimum width=6em]
\tikzstyle{sum} = [draw, fill=white, circle, node distance=1cm]
\tikzstyle{input} = [coordinate]
\tikzstyle{output} = [coordinate]
\tikzstyle{pinstyle} = [pin edge={to-,thin,black}]
\begin{center}
\begin{tikzpicture}[auto, node distance=2cm,>=latex]
\node [input, name=input] {};
\node [sum, right of=input] (sum) {};
%%\node [block, right of=sum] (controller) {};
\node [block, right of=sum,
node distance=3cm] (system) {$G_{Rail}(s)$};
\draw [->] (sum) -- node[name=u] {$u$} (system);
\node [output, right of=system] (output) {};
%\node [block, below of=u] (measurements) {Measurements};
\coordinate [below of=u] (measurements) {};
\draw [draw,->] (input) -- node {$r$} (sum);
%\draw [->] (sum) -- node {$e$} (system);
\draw [->] (system) -- node [name=y] {$y$}(output);
%\draw [->] (y) |- (measurements);
\draw [-] (y) |- (measurements);
%\draw [->] (measurements) -| node[pos=0.99] {$-$}
\draw [->] (measurements) -| %node[pos=1.00] {$-$}
node [near end] {$y_m$} (sum);
\coordinate [below=1.7cm of sum] (u1) {};
\coordinate [below=1.88cm of y] (u2) {};
\draw[
decorate,
decoration={brace, mirror, amplitude=8pt}
]
(u1.south west) -- (u2.south east)
node[midway, below=10pt] {$H(s)$};
%\draw [->]
\end{tikzpicture}
\end{center}
\subsection{Mise en oeuvre de N4SID}
On a utilisé la fonction n4sid() que pouvons retrouver sur matlab. Nous avons fait une experiènce temporel, frequentiel et avec Loewner.
\vspace{0.5cm}
\textbf{Un signal multisine a été utilisé pour ballader sur les differents frequences du système, et retrouver les frequences resonantes du système.}
Nous l'avons mis entre 0.1Hz à 4Hz.
\hfill
\begin{center}
%\includesvg[inkscapelatex=false]{./Illustrations/multisine1}
\end{center}
\vspace{3cm}
Voici le comportement des differents modèles obtenu:
\begin{center}
\includegraphics[scale=1]{./Illustrations/multisine1.pdf}
\includegraphics{./Illustrations/fig2.png}
\end{center}
Après avoir comparé les differents modèles avec le vrai système,
Cela nous avait mené à résumer le systeme du rail à la fonction de transfert suivante :
$$G(s) = \frac{NUM}{DEN}$$
\begin{center}
\begin{equation}
G(z) = \frac{0,2977 z^{-1} - 0,2962 z^{-2}}{1 - 1,825 z^{-1} + 0,8496 z^{-2}}
\end{equation}
\end{center}
Nous avons choisi le modèle obtenu à l'aide du n4sid() temporel, ordre 2.
@ -49,29 +88,15 @@ Nous avons choisi le modèle obtenu à l'aide du n4sid() temporel, ordre 2.
Après avoir trouvé un modèle qui nous va, nous avons ensuite retrouvé la vraie fonction de transfert du rail. Avec la relation qui suit:
Après avoir trouvé le modèle souhaité, nous avons ensuite retrouvé la vraie fonction transferte du rail. Avec la relation qui suit:
%%Lånt av disse her, smarte folk!
% Source - https://tex.stackexchange.com/q/175969
% Posted by student1, modified by community. See post 'Timeline' for change history
% Retrieved 2026-04-02, License - CC BY-SA 3.0
% Source - https://tex.stackexchange.com/a/175970
% Posted by Peter Grill, modified by community. See post 'Timeline' for change history
% Retrieved 2026-04-02, License - CC BY-SA 3.0
\tikzstyle{block} = [draw, fill=white, rectangle,
minimum height=3em, minimum width=6em]
\tikzstyle{sum} = [draw, fill=white, circle, node distance=1cm]
\tikzstyle{input} = [coordinate]
\tikzstyle{output} = [coordinate]
\tikzstyle{pinstyle} = [pin edge={to-,thin,black}]
\begin{center}
\begin{tikzpicture}[auto, node distance=2cm,>=latex]
@ -108,24 +133,24 @@ node[midway, below=10pt] {$H(s)$};
%\draw [->]
\end{tikzpicture}
\end{center}
\begin{equation}
H(s)=\frac{G(s)}{1+G(s)}\Rightarrow G(s)=\frac{H(s)}{1+H(s)}
H(s)=\frac{G(s)}{1+G(s)}\Rightarrow G(s)=\frac{H(s)}{1-H(s)}
\end{equation}
\subsection{Calcul du correcteur du système: P}
Nous avons conçu un retour PID pour le système du rail. Après avoir parlé avec le professeur, il nous a dit que le système est déjà equipé avec un integrateur. Donc nous avons choisi un système bouclé avec un simple correcteur P. Comme nous pouvons voir ci-dessous:
\begin{center}
\begin{tikzpicture}[auto, node distance=2cm,>=latex]
\node [input, name=input] {};
\node [sum, right of=input] (sum) {};
\node [block, right of=sum] (controller) {Controleur: P};
\node [block, right of=sum] (controller) {$Controleur: K_P$};
\node [block, right of=controller,
node distance=3cm] (system) {$G_{Rail}(s)$};
@ -136,12 +161,12 @@ Nous avons conçu un retour PID pour le système du rail. Après avoir parlé av
\draw [draw,->] (input) -- node {$r$} (sum);
\draw [->] (sum) -- node {$e$} (controller);
\draw [->] (system) -- node [name=y] {$y$}(output);
\draw [->] (system) -- node [name=y] {$V_\theta$}(output);
%\draw [->] (y) |- (measurements);
\draw [-] (y) |- (measurements);
%\draw [->] (measurements) -| node[pos=0.99] {$-$}
\draw [->] (measurements) -| %node[pos=1.00] {$-$}
node [near end] {$y_m$} (sum);
node [near end] {$V_\theta$} (sum);
\coordinate [below=1.7cm of sum] (u1) {};
\coordinate [below=1.88cm of y] (u2) {};
@ -156,21 +181,27 @@ node[midway, below=10pt] {$H_C(s)$};
%\draw [->]
\end{tikzpicture}
\end{center}
Après avoir conçu le système avec n4sid(), nous avons retrouvé la fonction de transfert :
\begin{center}
\begin{equation}
G(s)=\frac{H(s)}{1-H(s)}
\end{equation}
\end{center}
À l'aide de la fonction transferte du système rail, nous avons recalculé la nouvelle fonction transferte avec le gain proportionnel en boucle fermé:
\begin{equation}
G(s)=\frac{H(s)}{1+H(s)}
\end{equation}
\begin{equation}
G_{BF}(s)=\frac{P G(s)}{1+P G(s}
H_{C}(s)=\frac{K_P G(s)}{1+K_P G(s}
\end{equation}
Finalement, on essaie des différents valeurs de P pour observer le temps de réponse dans la boucle fermée. Nous tracons les différents valeurs dans un seul schèma pour voir l'impact d'un échelon sur le système.
\begin{center}
\includegraphics[scale=1]{./Illustrations/StepRespnseRail.png}
%\includesvg{./Illustrations/StepRespnseRail}
\end{center}
Le choix de P restait sur plusieurs tests du système bouclé avec un P de differentes valeurs. Voici les differents reponses du système d'un simple step. Nous avons choisi:
@ -264,46 +295,64 @@ Le schèma complet du système \textit{Bille sur rail} si dessous. \\ L'entrée
\subsection{Translation Position/Tension}
Le système ne prend qu'une tension comme entre. Nous devons donc translater la position de la bille en tension envoyé. Pour arriver à faire cela, nous avons calculé la fonction transferte à partir des equations mecaniques:
\begin{equation}
\Sigma F_x = m \ddot{x} = mg \sin(\theta(t))
\sin(\theta)\approx\theta, \theta\approx 0
\Rightarrow m\ddot{x}mg\theta \rightarrow \mathcal{L}\{.\}\rightarrow s^2 X(s)=g\Theta(s)
\end{equation}
$$\Sigma F_x = mg \sin(\theta(t)) = m \ddot{x}(t)$$
$$\sin(\theta)\approx\theta, \theta\approx 0 $$
$$\Rightarrow m\ddot{x}=mg \theta(t) \rightarrow \mathcal{L}\{.\}\rightarrow s^2 X(s)=g\Theta(s) $$
\begin{equation}
\frac{X(s)}{\Theta[s]}=\frac{g}{s^2} \Rightarrow \frac{V_x(s)}{V_\theta(s)}=K_b \frac{g}{s^2}
\end{equation}
Pour calculer le \textit{K_b} nous avons fait une regression linaire avec la bille sur plusierus endroits sur le rail, et fait la lecture de la tension de sortie de système.
\includegraphics{}
Pour calculer le \textit{$K_b$} nous avons fait une regression linaire avec la bille sur plusierus endroits sur le rail, et fait la lecture de la tension de sortie de système.
\subsection{Analyse des frequences importantes au système}
\begin{center}
\includegraphics[scale=0.8]{./Illustrations/Regression_pos_volt.png}
\end{center}
Dans excel nous avons crée un simple regression. Nous avons donc trouvé une pente:
\begin{center}
$K_b = 0.2V/cm$
\end{center}
\subsection{Calcul du correcteur: \textit{Avance de phase}}
Pour cette deuxième boucle du système, on commence avec la boucle déjà existante. On trace le diagramme de Bode pour cet système pour mieux ananlyser les besoin du système. Cet diagramme est comme suit :
%\newpage
\hfill
\includegraphics[scale=1]{./Illustrations/bodeRail1.png}
%\includesvg{./Illustrations/bodeRail1.png}
%\includesvg{./Illustrations/bodeRail1}
%\\
Nous verrons que le point critique où il faut ajouter de la phase est à 1,4 rad/s. Donc on concoit le correcteur pour cela. Pour qu'on puisse augmenter les marges de phase, on utilise un correcteur d'avance de phase.
Le correcteur d'avance de phase a une fonction de transfert sur la forme canonique\footnote{https://homepages.laas.fr/fgouaisb/donnees/M1ICM/slidesM1ICMp8.pdf} : $$G(p) = K_p \frac{1 + \alpha T p}{1 + T p}, avec \ \alpha \ > \ 1$$
Le correcteur d'avance de phase a une fonction de transfert sur la forme canonique\footnote{https://homepages.laas.fr/fgouaisb/donnees/M1ICM/slidesM1ICMp8.pdf} : $$G(p) = K_p \frac{1 + \alpha T s}{1 + T s}, avec \ \alpha \ > \ 1 , K_p = 1$$
%\includesvg{./Illustrations/bodeCorrecteur}
$$\Theta_{Marge}=\Theta_{Desire} - \Theta_{Systeme} = 125^\circ \Rightarrow \Phi_{Desire} = 55^\circ $$
$$a = \frac {1 + \sin(\Phi)}{1 - \sin(\Phi)} = \frac {1 + \sin(55^\circ)}{1 - \sin(55^\circ)} \approx 10$$
$$T = \frac{1}{\omega_m*\sqrt{a}} \Rightarrow T = \frac{1}{1.4*\sqrt 10} \approx 0,22$$
\vspace{4cm}
\begin{center}
Nous obtiendrons donc un correcteur \textit{Avance de phase} sous la forme :
\end{center}
$$T_C(s) = \frac{1+2.2s}{1+0.22s}$$
$$a = \frac {1 + \sin(\Phi)}{1 - \sin(\phi)} = \frac {1 + \sin(55°)}{1 - \sin(55°)} \approx 10$$
$$\omega_m = \frac{1}{T*\sqrt{a}} = \frac{1}{1.4*\sqrt 10} \approx 0,22$$
\includegraphics[scale=1]{./Illustrations/bodeCorrecteur.png}
\newpage
\section{Vérification}
\subsection{Expérimental}
\begin{center}
{\Huge ** Démonstration **}
Le schèma Simulink complèt est ci-dessous. Nous avons enlevé un erreur statique de $2.5V \Leftrightarrow 12.5cm$. Nous avons multiplié par $K_b = 0.2V/cm$ pour traduire la commande en position à une commande en tension.\begin{center}
\includegraphics[scale=0.65,trim=0 6cm 0 6cm,clip]{./Illustrations/commandeSimulinkGlobale.pdf}
\end{center}
\subsection{MATLAB - marge de phase}
En utilisant la fonction de allmargin nous trouvons le marge de phase pour le système entier en boucle fermé. Traçons le diagramme de Bode du système pour analyser le systeme même sans négliger la fonction de transfert du moteur : \hfill
%%\includesvg{./Illustrations/StepRespnseRail}
En utilisant la fonction de allmargin nous trouvons le marge de phase pour le système entier en boucle fermé. Traçons le diagramme de Bode du système pour analyser le systeme même sans négliger la fonction de transfert du moteur :
\subsection{Reponse du système entièr}
Voici le comportement du système avec differents positions souhaité.\\
\begin{center}
$ X_0 = 0 \rightarrow -30cm \rightarrow 10cm \rightarrow -45cm \rightarrow 0 $
%\includegraphics{./Illustrations/{BildeAvStepResponseBilleSurRail}
\end{center}
\newpage
\psection{Conclusion}
@ -323,4 +372,3 @@ La boucle est bouclée et la balle est en equilibre.
%\includesvg{./Illustrations/StepRespnseRail}
\end{center}

Binary file not shown.

View file

@ -9,7 +9,7 @@
\parbox{\textwidth}{
\sffamily % arial
\textbf{Oskar ORVIK \\ Aleksander TABAN \\ Brage JOHNSEN}\\
Elève Ingénieurs \\ de l'INSA Toulouse\\
Elèves Ingénieurs \\ de l'INSA Toulouse\\
Département GEI \\
Spécialité AE-SE \\
Promotion 60 \\
@ -45,13 +45,13 @@
\begin{document}
%%\includesvg{./Illustrations/fig2.svg}
\input{template/premiere_page} % ne pas toucher
\input{template/page_garde}
\input{template/premiere_page} % ne pas toucher
%%\input{template/page_garde}
% commentez les sections qui ne vous concernent pas
%\input{contents/confidentiel}
%\input{contents/remerciements}
\input{contents/abstract}
%%\input{contents/abstract}
\input{template/table_des_matieres} % ne pas toucher
@ -59,7 +59,7 @@
\input{contents}
% commentez les sections qui ne vous concernent pas
\input{contents/biblio}
%%\input{contents/biblio}
%\input{contents/lexique}
%\input{contents/figures}