M.à.j. de la présentation
This commit is contained in:
parent
0c4a3097b0
commit
0ed46b344a
3 changed files with 164 additions and 50 deletions
BIN
presentation/Illustrations/Regression_pos_volt.png
Normal file
BIN
presentation/Illustrations/Regression_pos_volt.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
Binary file not shown.
|
|
@ -45,7 +45,7 @@ minimum height=3em, minimum width=6em]
|
||||||
|
|
||||||
% Here's where the presentation starts, with the info for the title slide
|
% Here's where the presentation starts, with the info for the title slide
|
||||||
\title[Miniprojet automation]{Miniprojet automation - bille sur rail}
|
\title[Miniprojet automation]{Miniprojet automation - bille sur rail}
|
||||||
\author[ORVIK, TABAN et JOHNSEN]{ORVIK Oskar, TABAN Aleksander \& JOHNSEN Brage}
|
\author[ORVIK, JOHNSEN et TABAN]{ORVIK Oskar, JOHNSEN Brage \& TABAN Aleksander}
|
||||||
\institute{INSA Toulouse - DGEI - 4AE-SE}
|
\institute{INSA Toulouse - DGEI - 4AE-SE}
|
||||||
\date{\today}
|
\date{\today}
|
||||||
|
|
||||||
|
|
@ -92,7 +92,7 @@ minimum height=3em, minimum width=6em]
|
||||||
\node [sum, right of=input] (sum) {};
|
\node [sum, right of=input] (sum) {};
|
||||||
%%\node [block, right of=sum] (controller) {};
|
%%\node [block, right of=sum] (controller) {};
|
||||||
\node [block, right of=sum,
|
\node [block, right of=sum,
|
||||||
node distance=3cm] (system) {$G_{Rail}(s)$};
|
node distance=3cm] (system) {$G_{Rail}(p)$};
|
||||||
|
|
||||||
\draw [->] (sum) -- node[name=u] {$u$} (system);
|
\draw [->] (sum) -- node[name=u] {$u$} (system);
|
||||||
\node [output, right of=system] (output) {};
|
\node [output, right of=system] (output) {};
|
||||||
|
|
@ -112,9 +112,9 @@ minimum height=3em, minimum width=6em]
|
||||||
\coordinate [below=1.88cm of y] (u2) {};
|
\coordinate [below=1.88cm of y] (u2) {};
|
||||||
\draw[decorate, decoration={brace, mirror, amplitude=8pt}]
|
\draw[decorate, decoration={brace, mirror, amplitude=8pt}]
|
||||||
(u1.south west) -- (u2.south east)
|
(u1.south west) -- (u2.south east)
|
||||||
node[midway, below=10pt] {$H(s)$};
|
node[midway, below=10pt] {$H(p)$};
|
||||||
\end{tikzpicture}
|
\end{tikzpicture}
|
||||||
\caption{Schèma bloc décrivant le système rail}
|
\caption{Schèma-bloc décrivant le système rail}
|
||||||
\label{fig:rail}
|
\label{fig:rail}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
@ -123,29 +123,30 @@ minimum height=3em, minimum width=6em]
|
||||||
\subsection{Mise en œuvre de N4SID}
|
\subsection{Mise en œuvre de N4SID}
|
||||||
\begin{frame}[fragile]
|
\begin{frame}[fragile]
|
||||||
\frametitle{Mise en œuvre de N4SID}
|
\frametitle{Mise en œuvre de N4SID}
|
||||||
On a utilisé la fonction MATLAB n4sid() de plusieurs manières; en temporel, frequentiel et Loewner.
|
Nous utilisons la fonction MATLAB "multisine()" pour générer un signal de test de ce système.
|
||||||
|
|
||||||
\begin{figure}[H]
|
\begin{figure}[H]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=0.2]{./Illustrations/multisine1.png}
|
\includegraphics[scale=0.2, ]{./Illustrations/multisine1.png}
|
||||||
\caption{Le signal d'entrée, de type "multisine" entre 0.1Hz et 4Hz}
|
\caption{Le signal d'entrée, de type "multisine" entre 0.1Hz et 4Hz}
|
||||||
\label{fig:multisine}
|
\label{fig:multisine}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
\subsection{Test du modèle obtenu avec N4SID}
|
\subsection{Test du modèle obtenu avec N4SID}
|
||||||
\begin{frame}[fragile]
|
\begin{frame}[fragile]
|
||||||
\frametitle{Test du modèle obtenu avec N4SID}
|
\frametitle{Test du modèle obtenu avec N4SID}
|
||||||
|
Nous trouvons la fonction de transfert en utilisant la fonction MATLAB "n4sid()" en temporel et frequentiel.
|
||||||
\begin{figure}[H]
|
\begin{figure}[H]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[scale=0.45]{./Illustrations/fig2.png}
|
\includegraphics[scale=0.45, trim= 0 0.7cm 0 0.7cm, clip]{./Illustrations/fig2.png}
|
||||||
\caption{Comportement des differents modèles obtenus}
|
\caption{Comportement des differents modèles obtenus}
|
||||||
\label{fig:modeles}
|
\label{fig:modeles}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\vspace{-1em}
|
\vspace{-1em}
|
||||||
Après avoir comparé les modèles avec le vrai système, nous avons choisi le modèle n4sid() temporel d'ordre 2.
|
Après comparaison, nous avons choisi "temporel ordre 2".
|
||||||
|
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
|
@ -156,31 +157,31 @@ minimum height=3em, minimum width=6em]
|
||||||
Cela nous avait mené à résumer le systeme du rail à la fonction de transfert suivante :
|
Cela nous avait mené à résumer le systeme du rail à la fonction de transfert suivante :
|
||||||
|
|
||||||
\begin{equation*}
|
\begin{equation*}
|
||||||
G(z) = \frac{0,2977 z^{-1} - 0,2962 z^{-2}}{1 - 1,825 z^{-1} + 0,8496 z^{-2}}
|
\boxed{G(z) = \frac{0,2977 z^{-1} - 0,2962 z^{-2}}{1 - 1,825 z^{-1} + 0,8496 z^{-2}}}
|
||||||
\end{equation*}
|
\end{equation*}
|
||||||
|
|
||||||
\vspace{1em}
|
\vspace{1em}
|
||||||
Après avoir trouvé le modèle souhaité, nous avons ensuite retrouvé la vraie fonction transferte du rail :
|
Après avoir trouvé le modèle souhaité, nous avons ensuite retrouvé la vraie fonction transfert du rail aprés un d2c() :
|
||||||
|
|
||||||
\begin{equation*}
|
\begin{equation*}
|
||||||
H(s)=\frac{G(s)}{1+G(s)}\Rightarrow G(s)=\frac{H(s)}{1+H(s)}
|
H(p)=\frac{G(p)}{1+G(p)}\Rightarrow G(p)=\frac{H(p)}{1-H(p)}
|
||||||
\end{equation*}
|
\end{equation*}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
\subsection{Calcul du correcteur du système: P}
|
\subsection{Calcul du correcteur du système : $K_p$}
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
\frametitle{Calcul du correcteur du système: P}
|
\frametitle{Calcul du correcteur du système : $K_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:
|
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é d'un integrateur. Donc nous avons choisi un système bouclé avec un simple correcteur P. Comme nous pouvons voir ci-dessous:
|
||||||
|
|
||||||
\begin{figure}
|
\begin{figure}
|
||||||
\centering
|
\centering
|
||||||
\begin{tikzpicture}[auto, node distance=2cm,>=latex]
|
\begin{tikzpicture}[auto, node distance=2cm,>=latex]
|
||||||
\node [input, name=input] {};
|
\node [input, name=input] {};
|
||||||
\node [sum, right of=input] (sum) {};
|
\node [sum, right of=input] (sum) {};
|
||||||
\node [block, right of=sum] (controller) {Correcteur : P};
|
\node [block, right of=sum] (controller) {Correcteur : $K_p$};
|
||||||
\node [block, right of=controller,
|
\node [block, right of=controller,
|
||||||
node distance=3cm] (system) {$G_{Rail}(s)$};
|
node distance=3cm] (system) {$G_{Rail}(p)$};
|
||||||
|
|
||||||
\draw [->] (controller) -- node[name=u] {$u$} (system);
|
\draw [->] (controller) -- node[name=u] {$u$} (system);
|
||||||
\node [output, right of=system] (output) {};
|
\node [output, right of=system] (output) {};
|
||||||
|
|
@ -200,9 +201,9 @@ minimum height=3em, minimum width=6em]
|
||||||
\coordinate [below=1.88cm of y] (u2) {};
|
\coordinate [below=1.88cm of y] (u2) {};
|
||||||
\draw[decorate, decoration={brace, mirror, amplitude=8pt}]
|
\draw[decorate, decoration={brace, mirror, amplitude=8pt}]
|
||||||
(u1.south west) -- (u2.south east)
|
(u1.south west) -- (u2.south east)
|
||||||
node[midway, below=10pt] {$H_C(s)$};
|
node[midway, below=10pt] {$H_C(p)$};
|
||||||
\end{tikzpicture}
|
\end{tikzpicture}
|
||||||
\caption{Schèma bloc décrivant le système rail avec correcteur}
|
\caption{Schèma-bloc décrivant le système rail avec correcteur}
|
||||||
\label{fig:rail_correcteur}
|
\label{fig:rail_correcteur}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
@ -210,61 +211,171 @@ minimum height=3em, minimum width=6em]
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
Après avoir conçu le système avec n4sid(), nous avons retrouvé la fonction de transfert :
|
Après avoir conçu le système avec n4sid(), nous avons retrouvé la fonction de transfert :
|
||||||
|
|
||||||
|
\begin{equation*}
|
||||||
|
FYLL=UT^2 + SNAREST
|
||||||
|
\end{equation*}
|
||||||
|
|
||||||
À l'aide de la fonction transferte du système rail, nous avons recalculé la nouvelle fonction transferte avec le gain proportionnel en boucle fermé:
|
À 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}
|
\begin{align*}
|
||||||
G(s)=\frac{H(s)}{1+H(s)}
|
G(p)=\frac{H(p)}{1-H(p)} & &
|
||||||
\end{equation}
|
G_{BF}(p)=\frac{K_p G(p)}{1+K_p G(p)}
|
||||||
|
\end{align*}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
Finalement, on essaie des valeurs différentes pour P pour observer le temps de réponse en boucle fermée avec correcteur.
|
||||||
|
|
||||||
\begin{equation}
|
\begin{figure}
|
||||||
G_{BF}(s)=\frac{P G(s)}{1+P G(s}
|
\centering
|
||||||
\end{equation}
|
|
||||||
\end{frame}
|
|
||||||
|
|
||||||
|
|
||||||
\begin{frame}
|
|
||||||
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=0.4]{./Illustrations/StepRespnseRail.png}
|
\includegraphics[scale=0.4]{./Illustrations/StepRespnseRail.png}
|
||||||
\end{center}
|
\caption{Réponse à un échelon avec des $K_p$ différents }
|
||||||
\end{frame}
|
\label{fig:test_gain}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
\begin{frame}
|
Nous avons choisi $\boxed{K_p = 1}$, bien rapide.
|
||||||
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:
|
|
||||||
\begin{equation}
|
|
||||||
P=1
|
|
||||||
\end{equation}
|
|
||||||
Cela nous a donné un temps de reponse respectif aux attentes que nous avions.
|
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
\section{Loi de commande du bille sur rail}
|
\section{Loi de commande du bille sur rail}
|
||||||
\subsection{Système bouclé avec la bille}
|
\subsection{Système bouclé avec la bille}
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
\frametitle{Système bouclé avec la bille}
|
\frametitle{Système bouclé avec la bille}
|
||||||
Ajouter un gros système bouclé. Il faut savoir où mettre le correcteur avance de phase.
|
\begin{figure}
|
||||||
|
\scalebox{0.65}{\begin{tikzpicture}[auto, node distance=2cm,>=latex]
|
||||||
|
\node [input, name=input] {};
|
||||||
|
|
||||||
|
%Bloc pos/tension
|
||||||
|
\node [block, right of=input] (Kb) {$K_b$};
|
||||||
|
|
||||||
|
%Somme de erreur
|
||||||
|
\node [sum, right of=Kb, node distance=2.5cm] (sum2) {};
|
||||||
|
|
||||||
|
% First controller (Tc) AFTER input
|
||||||
|
\node [block, right of=sum2] (Tc) {$T_c$};
|
||||||
|
|
||||||
|
% Sum AFTER Tc
|
||||||
|
\node [sum, right of=Tc, node distance=3cm] (sum) {};
|
||||||
|
|
||||||
|
% Second controller (P) AFTER sum
|
||||||
|
\node [block, right of=sum] (Pctrl) {$Controleur : K_p$};
|
||||||
|
|
||||||
|
% System
|
||||||
|
\node [block, right of=Pctrl, node distance=3cm] (system) {$G_{Rail}(p)$};
|
||||||
|
|
||||||
|
% Output
|
||||||
|
\node [output, right of=system] (output) {};
|
||||||
|
|
||||||
|
% Connections
|
||||||
|
\draw [->] (input) -- node {$x_c$} (Kb);
|
||||||
|
\draw [->] (Kb) -- node {$V_x$} (sum2);
|
||||||
|
\draw [->] (sum2) -- node {$\epsilon$} (Tc);
|
||||||
|
\draw [->] (Tc) -- node {$r$} (sum);
|
||||||
|
\draw [->] (sum) -- node {$e$} (Pctrl);
|
||||||
|
\draw [->] (Pctrl) -- node[name=u] {$u$} (system);
|
||||||
|
\draw [->] (system) -- node[name=y] {$V_\theta$} (output);
|
||||||
|
|
||||||
|
% Feedback path
|
||||||
|
\coordinate [below of=u] (measurements) {};
|
||||||
|
\draw [-] (y) |- (measurements);
|
||||||
|
\draw [->] (measurements) -| node [near end] {$V_\theta$} (sum);
|
||||||
|
|
||||||
|
% Feedback path 2
|
||||||
|
\coordinate [below=2.7cm of sum2] (measurements2) {};
|
||||||
|
\draw [-] (y) |- (measurements2);
|
||||||
|
\draw [->] (measurements2) -| node [near end] {$V_\theta$} (sum2);
|
||||||
|
|
||||||
|
% Brace 1
|
||||||
|
\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_C(p)$};
|
||||||
|
|
||||||
|
% Brace 2
|
||||||
|
\coordinate [below=2.8cm of sum2] (u3) {};
|
||||||
|
\coordinate [below=3cm of y] (u4) {};
|
||||||
|
\draw[decorate, decoration={brace, mirror, amplitude=8pt}]
|
||||||
|
(u3.south west) -- (u4.south east)
|
||||||
|
node[midway, below=10pt] {$H(p)$};
|
||||||
|
\end{tikzpicture}}
|
||||||
|
\caption{Schèma-bloc décrivant le système bille sur rail en entier}
|
||||||
|
\label{fig:bille}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
Nous aimerions que l'entrée du système soit une position souhaité pour la bille, entre -50cm et +50cm. Commençons donc par trouver un $K_b$ pour transformer la position en tension.
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
|
\subsection{Transformation position - tension}
|
||||||
|
\begin{frame}
|
||||||
|
\frametitle{Transformation position - tension}
|
||||||
|
Nous avons calculé la fonction de transfert à partir des equations mecaniques :
|
||||||
|
|
||||||
|
\begin{equation*}
|
||||||
|
\sum F_x = m \ddot{x} = mg \sin(\theta(t))
|
||||||
|
\end{equation*}
|
||||||
|
|
||||||
|
Or, $\theta\approx0$. Nous pouvons donc simplifier avec :
|
||||||
|
|
||||||
|
\begin{equation*}
|
||||||
|
\sin(\theta)\approx\theta
|
||||||
|
\end{equation*}
|
||||||
|
|
||||||
|
Ce qui nous donne :
|
||||||
|
|
||||||
|
\begin{equation*}
|
||||||
|
m\ddot{x}(t) = mg\theta(t)
|
||||||
|
\end{equation*}
|
||||||
|
|
||||||
|
Puis en passant par la transformée de Laplace, nous obtenons :
|
||||||
|
|
||||||
|
\begin{equation*}
|
||||||
|
p^2 X(p)=g\Theta(p)\Leftrightarrow\frac{X(p)}{\Theta(p)}=\frac{g}{p^2} \Rightarrow \boxed{\frac{V_x(p)}{V_\theta(p)}=K_b \frac{g}{p^2}}
|
||||||
|
\end{equation*}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
|
\begin{frame}
|
||||||
|
Pour calculer le \textit{$K_b$} nous avons fait une regression linéaire.
|
||||||
|
|
||||||
|
\begin{figure}
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=0.4]{./Illustrations/Regression_pos_volt.png}
|
||||||
|
\caption{Relation entre la position de la bille et la tension de sortie du système pour faire une régression linéaire}
|
||||||
|
\label{fig:regression}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
Ceci nous à donné, dans Microslop Excel, $\boxed{K_b = 1.926}$.
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
\subsection{Analyse des frequences importantes au système}
|
\subsection{Analyse des frequences importantes au système}
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
\frametitle{Analyse des frequences importantes au système}
|
\frametitle{Analyse des frequences importantes au système}
|
||||||
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 :
|
Pour cette deuxième boucle du système, on commence par tracer le diagramme de Bode du système rail sans bille, pour mieux ananlyser les besoin du système.
|
||||||
|
|
||||||
\includegraphics[scale=0.5]{./Illustrations/bodeRail1.png}
|
\begin{figure}
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=0.4]{./Illustrations/bodeRail1.png}
|
||||||
|
\caption{Diagramme de Bode système rail sans bille}
|
||||||
|
\label{fig:bode_rail}
|
||||||
|
\end{figure}
|
||||||
|
\vspace{-1em}
|
||||||
|
Le correcteur choisit est un correcteur avance de phase. POURQUOI !???!?
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
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.
|
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{\href{https://homepages.laas.fr/fgouaisb/donnees/M1ICM/slidesM1ICMp8.pdf}{https://homepages.laas.fr/fgouaisb/donnees/M1ICM/slidesM1ICMp8.pdf}} : $$G(p) = K_p \frac{1 + \alpha T p}{1 + T p}, avec \ \alpha \ > \ 1$$
|
||||||
|
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
%\includesvg{./Illustrations/bodeCorrecteur}
|
\includegraphics[scale=0.5]{./Illustrations/bodeCorrecteur.png}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -278,9 +389,12 @@ minimum height=3em, minimum width=6em]
|
||||||
\subsection{Expérimental}
|
\subsection{Expérimental}
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
\frametitle{Vérfication expérimentale}
|
\frametitle{Vérfication expérimentale}
|
||||||
\begin{center}
|
\vfill
|
||||||
{\Huge ** Démonstration **}
|
\centering
|
||||||
\end{center}
|
\begin{beamercolorbox}[sep=8pt,center,shadow=true,rounded=true]{title}
|
||||||
|
\usebeamerfont{title}\Huge\textbf{\textrightarrow\ Démonstration \textleftarrow}
|
||||||
|
\end{beamercolorbox}
|
||||||
|
\vfill
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue