slides finies
This commit is contained in:
parent
81b51ad97c
commit
b3a2095ade
2 changed files with 24 additions and 23 deletions
BIN
slides.pdf
BIN
slides.pdf
Binary file not shown.
47
slides.tex
47
slides.tex
|
@ -46,11 +46,11 @@
|
||||||
\begin{figure}
|
\begin{figure}
|
||||||
\centering
|
\centering
|
||||||
\begin{tikzpicture}
|
\begin{tikzpicture}
|
||||||
\draw[vulm, fill=yulm!30] (0, 0) rectangle +(2, 2) node[pos=.5] {\texttt{.svg}};
|
\draw[vulm, rounded corners, fill=yulm!30] (0, 0) rectangle +(2, 2) node[pos=.5] {\texttt{.svg}};
|
||||||
\draw[vulm, ->] (2, 1) -- (3, 1);
|
\draw[vulm, ->] (2, 1) -- (3, 1);
|
||||||
\draw[vulm, fill=yulm!30] (3, 0) rectangle +(2, 2) node[pos=.5] {\texttt{.gc}};
|
\draw[vulm, rounded corners, fill=yulm!30] (3, 0) rectangle +(2, 2) node[pos=.5] {\texttt{.gc}};
|
||||||
\draw[vulm, ->] (5, 1) -- (6, 1);
|
\draw[vulm, ->] (5, 1) -- (6, 1);
|
||||||
\draw[vulm, fill=yulm!30, double] (6, 0) rectangle +(2, 2) node[pos=.5] {\texttt{PMB}};
|
\draw[vulm, rounded corners, fill=yulm!30, double] (6, 0) rectangle +(2, 2) node[pos=.5] {\texttt{PMB}};
|
||||||
\end{tikzpicture}
|
\end{tikzpicture}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
\visible<2->{Le format GCode est standardisé, et indépendant des capacités de la machine.}
|
\visible<2->{Le format GCode est standardisé, et indépendant des capacités de la machine.}
|
||||||
|
@ -110,16 +110,16 @@
|
||||||
\begin{minipage}{.5\textwidth}
|
\begin{minipage}{.5\textwidth}
|
||||||
\begin{tikzpicture}
|
\begin{tikzpicture}
|
||||||
\pic(comp0) [
|
\pic(comp0) [
|
||||||
draw, fill = gray!30, pic text = {Contrôleur de Petite Machine à Bois}, scale=.3
|
draw, fill = gray!30, pic text = {Contrôleur de Petite Machine à Bois}, scale=.25
|
||||||
] {computer};
|
] {computer};
|
||||||
\coordinate (cnc) at ($(comp0-c.south) + (0, -1)$);
|
\coordinate (cnc) at ($(comp0-c.south) + (0, -1)$);
|
||||||
\path (comp0-c.east) edge [loop right, min distance=.7cm, in=330, out=30, looseness=8, -{Latex[width=3mm]}, vulm] node[right, vulm, rectangle, fill=yulm!30, draw=vulm] {GCode} (comp0-c.east);
|
\path (comp0-c.east) edge [loop right, min distance=.7cm, in=330, out=30, looseness=8, -{Latex[width=3mm]}, vulm] node[right, vulm, rectangle, fill=yulm!30, draw=vulm, rounded corners] {GCode} (comp0-c.east);
|
||||||
\draw[vulm, fill=yulm!30] ($(cnc) + (-1, 0)$) rectangle +(2, -1) node[pos=0.5] {Socket};
|
\draw[vulm, fill=yulm!30, rounded corners] ($(cnc) + (-1, 0)$) rectangle +(2, -1) node[pos=0.5] {Socket};
|
||||||
\draw[vulm, ->, double] ($(comp0-c.south) + (0.2, 0)$) --node[anchor=west, vulm]{$\omega_{c}$} ($(cnc.north) + (0.2, 0)$);
|
\draw[vulm, ->, double] ($(comp0-c.south) + (0.2, 0)$) --node[anchor=west, vulm]{$\omega_{c}$} ($(cnc.north) + (0.2, 0)$);
|
||||||
\draw[vulm, <-, double] ($(comp0-c.south) + (-0.2, 0)$) --node[anchor=east, vulm]{$\theta$} ($(cnc.north) + (-0.2, 0)$);
|
\draw[vulm, <-, double] ($(comp0-c.south) + (-0.2, 0)$) --node[anchor=east, vulm]{$\theta$} ($(cnc.north) + (-0.2, 0)$);
|
||||||
\draw[vulm, ->, double] ($(cnc) + (0.2, -1)$) -- node[anchor=west, vulm]{$\omega_{c}$} ($(cnc) + (0.2, -2)$);;
|
\draw[vulm, ->, double] ($(cnc) + (0.2, -1)$) -- node[anchor=west, vulm]{$\omega_{c}$} ($(cnc) + (0.2, -2)$);;
|
||||||
\draw[vulm, <-, double] ($(cnc) + (-0.2, -1)$) -- node[anchor=east, vulm]{$\theta$} ($(cnc) + (-0.2, -2)$);;
|
\draw[vulm, <-, double] ($(cnc) + (-0.2, -1)$) -- node[anchor=east, vulm]{$\theta$} ($(cnc) + (-0.2, -2)$);;
|
||||||
\draw[vulm, fill=yulm!30] ($(cnc) + (-2, -2)$) rectangle +(4, -1) node[pos=0.5] {Petite Machine à Bois};
|
\draw[vulm, fill=yulm!30, rounded corners] ($(cnc) + (-2, -2)$) rectangle +(4, -1) node[pos=0.5] {Petite Machine à Bois};
|
||||||
\end{tikzpicture}
|
\end{tikzpicture}
|
||||||
\end{minipage}
|
\end{minipage}
|
||||||
\hfill
|
\hfill
|
||||||
|
@ -128,7 +128,7 @@
|
||||||
\node[vulm, font=\small] (top) at (0, 0) {\parbox{.9\linewidth}{\textbf{Contrôleur:} traduit le GCode et envoie les vitesses de commande $\omega_{c}$ pour les moteurs.}};
|
\node[vulm, font=\small] (top) at (0, 0) {\parbox{.9\linewidth}{\textbf{Contrôleur:} traduit le GCode et envoie les vitesses de commande $\omega_{c}$ pour les moteurs.}};
|
||||||
\node[vulm, font=\small] (mid) at ($(top.south) + (0, -2)$) {\parbox{.9\linewidth}{\textbf{Socket:} sert d'intermédiaire pour la connexion (PMB).}};
|
\node[vulm, font=\small] (mid) at ($(top.south) + (0, -2)$) {\parbox{.9\linewidth}{\textbf{Socket:} sert d'intermédiaire pour la connexion (PMB).}};
|
||||||
\node[vulm, font=\small] (bot) at ($(mid.south) + (0, -2)$) {\parbox{.9\linewidth}{\textbf{Petite Machine à Bois:} envoie les positions $\theta$ de ses moteurs pas-à-pas.}};
|
\node[vulm, font=\small] (bot) at ($(mid.south) + (0, -2)$) {\parbox{.9\linewidth}{\textbf{Petite Machine à Bois:} envoie les positions $\theta$ de ses moteurs pas-à-pas.}};
|
||||||
\node[draw=vulm, thick, fit={(top) (mid) (bot)}, inner sep=3pt] (box) {};
|
\node[draw=vulm, thick, fit={(top) (mid) (bot)}, inner sep=3pt, rounded corners] (box) {};
|
||||||
\end{tikzpicture}
|
\end{tikzpicture}
|
||||||
\end{minipage}
|
\end{minipage}
|
||||||
\hfill
|
\hfill
|
||||||
|
@ -163,20 +163,20 @@
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
\frametitle{Contrôleur Matériel}
|
\frametitle{Contrôleur Matériel}
|
||||||
Le module matériel du contrôleur maintient une représentation mémoire de la position \emph{théorique} de la tête, transmise au contrôleur.
|
Le module matériel du contrôleur maintient une représentation mémoire de la position \emph{théorique} de la tête, transmise au contrôleur.
|
||||||
Il demande à la soc (et donc au \emph{vrai} matériel) les positions mesurées des moteurs pas-à-pas.
|
Il demande à la socket (et donc au \emph{vrai} matériel) les positions mesurées des moteurs pas-à-pas.
|
||||||
\begin{figure}
|
\begin{figure}
|
||||||
\centering
|
\centering
|
||||||
\begin{tikzpicture}
|
\begin{tikzpicture}
|
||||||
\draw[vulm, fill=yulm!30] (0, 0) rectangle +(2, 1) node[pos=0.5] (h) {Matériel};
|
\draw[vulm, rounded corners, fill=yulm!30] (0, 0) rectangle +(2, 1) node[pos=0.5] (h) {Matériel};
|
||||||
\draw[vulm, fill=yulm!30] (6, 0) rectangle +(2, 1) node[pos=0.5] (c) {Contrôleur};
|
\draw[vulm, rounded corners, fill=yulm!30] (6, 0) rectangle +(2, 1) node[pos=0.5] (c) {Contrôleur};
|
||||||
\draw[vulm, fill=yulm!30] (0, -2) rectangle +(2, 1) node[pos=0.5] (s) {Socket};
|
\draw[vulm, rounded corners, fill=yulm!30] (0, -2) rectangle +(2, 1) node[pos=0.5] (s) {Socket};
|
||||||
\draw[vulm, ->] ($(h.east) + (.2, 0.1)$) -- node[above, vulm] {Position $\rho$ \& Cible $\tau$} ($(c.west) + (-0.1, 0.1)$);
|
\draw[vulm, ->] ($(h.east) + (.25, 0.1)$) -- node[above, vulm] {Position $\rho$ \& Cible $\tau$} ($(c.west) + (-0.1, 0.1)$);
|
||||||
\draw[vulm, <-] ($(h.east) + (.2, -0.1)$) -- node[below, vulm] {Déplacement $\Gamma_{c}$} ($(c.west) + (-0.1, -0.1)$);
|
\draw[vulm, <-] ($(h.east) + (.25, -0.1)$) -- node[below, vulm] {Déplacement $\Gamma_{c}$} ($(c.west) + (-0.1, -0.1)$);
|
||||||
\draw[vulm, ->] ($(h.south) + (.1, -.3)$) -- node[right, vulm] {$\omega_{c}$} ($(s.north) + (.1, 0.3)$);
|
\draw[vulm, ->] ($(h.south) + (.1, -.3)$) -- node[right, vulm] {$\omega_{c}$} ($(s.north) + (.1, 0.3)$);
|
||||||
\draw[vulm, <-] ($(h.south) + (-.1, -.3)$) -- node[left, vulm] {$\theta$} ($(s.north) + (-.1, 0.3)$);
|
\draw[vulm, <-] ($(h.south) + (-.1, -.3)$) -- node[left, vulm] {$\theta$} ($(s.north) + (-.1, 0.3)$);
|
||||||
\end{tikzpicture}
|
\end{tikzpicture}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
Il envoie ensuite à la soc pour envoyer les vitesses de commandes traduites dans la spécification des moteurs.
|
Il envoie ensuite les vitesses de commandes traduites dans la spécification des moteurs.
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
|
@ -192,12 +192,12 @@
|
||||||
|
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
\frametitle{Simulateur}
|
\frametitle{Simulateur}
|
||||||
Pour modéliser la Petite Machine à Bois, on construit un simulateur physique simple.
|
Le simulateur tourne en continu, et ne change de vitesse pour résoudre les équations qu'à chaque changement de direction.\\
|
||||||
Le simulateur tourne en continu, et ne change de vitesse pour résoudre les équations qu'à chaque changement de direction.
|
On a ensuite par intégration directe du PFD:
|
||||||
On a ensuite par le PFD:
|
\begin{align*}
|
||||||
\begin{equation*}
|
J\dot{\omega} = \underset{\text{Friction}}{-f_{0} \times \omega_{t}} + \underset{\text{Gain Moteur}}{\Gamma \left(\omega_{c} - \omega_{t} \right)} \\
|
||||||
\dot{J_{\omega}} = \underset{\text{Inertie}}{-f\omega} + \underset{\text{Couple Commande}}{\left( \omega_{c} - \omega_{t} \right)}, \hfill \omega_{t + 1} = \omega_{t} + \Delta t \left( -f\omega + \left( \omega_{c} - \omega_{t} \right) \right)
|
\omega_{t + \Delta t} = \omega_{t} + \underset{\text{Inertie}}{J^{-1}} \times \Delta t \left( -f\omega + \Gamma\left( \omega_{c} - \omega_{t} \right) \right)
|
||||||
\end{equation*}
|
\end{align*}
|
||||||
On introduit par ailleurs un terme d'erreur lié aux frottements, et on peut encore raffiner le modèle.
|
On introduit par ailleurs un terme d'erreur lié aux frottements, et on peut encore raffiner le modèle.
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
@ -206,7 +206,7 @@
|
||||||
|
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
\frametitle{Intérêt}
|
\frametitle{Intérêt}
|
||||||
L'utilisation d'un soc et d'un modèle théorique restreint comme intermédiaire permet de prendre en compte, durant les phases de test, les différents facteurs d'erreurs pouvant intervenir durant l'exécution:
|
L'utilisation d'une socket et d'un modèle théorique restreint comme intermédiaire permet de prendre en compte, durant les phases de test, les différents facteurs d'erreurs pouvant intervenir durant l'exécution:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Une connexion trop volatile;
|
\item Une connexion trop volatile;
|
||||||
\item Des erreurs liées au glissement des moteurs pas-à-pas;
|
\item Des erreurs liées au glissement des moteurs pas-à-pas;
|
||||||
|
@ -218,7 +218,8 @@
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
\frametitle{Réalisme de la Simulation}
|
\frametitle{Réalisme de la Simulation}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item La simulation est pour l'instant peu réaliste car nos modèles physiques sont simplifiés. On ne prend notamment pas en compte le matériau de découpe.
|
\item La simulation est pour l'instant peu réaliste car nos modèles physiques sont simplifiés.
|
||||||
|
\item Nos moteurs sont modélisés par des moteurs asynchrones plus que pas-à-pas.
|
||||||
\item Le contrôleur pour l'instant implémenté ne prend pas en compte la suite des instructions dans sa globalité, et en particulier ne prévoit pas de restreindre l'effort sur les moteurs, en revenant le plus possible à $\omega = 0$.
|
\item Le contrôleur pour l'instant implémenté ne prend pas en compte la suite des instructions dans sa globalité, et en particulier ne prévoit pas de restreindre l'effort sur les moteurs, en revenant le plus possible à $\omega = 0$.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
Loading…
Reference in a new issue