\input{../../preamble.tex}

% Changing margins just so the tables fit nicely:
\geometry{margin=20mm}

\graphicspath{ {./img/} }

\pagestyle{fancy}
\fancyhf{}
\rhead{Víctor Rubio Español, Adrià Vilanova Martínez}
\lhead{Pràctica 8}
\rfoot{\thepage}
%%%% Title %%%%
\title{Pràctica 8. Inducció electromagnètica i corrents de Foucault}
\author{Víctor Rubio Español, Adrià Vilanova Martínez (4b, grup C1)}
\date{Primavera 2020}

\begin{document}
  {\parskip=0pt
    \maketitle
  }

  \begin{abstract}
    La pràctica consta de 2 experiments. Un d'ells consisteix en verificar la llei de Lenz mitjançant la mesura del corrent induït en una bobina per part del camp magnètic d'un iman.

    El segon consisteix en verificar que en deixar caure una barra a través d'un iman (en règim permanent de velocitat constant), les corrents de Foucaults induïdes a la barra tenen una força proporcional a la velocitat de caiguda.

    Finalment, també verificarem que les corrents de Foucault indueixen una força electromotriu $\varepsilon = v B l$, que és proporcional a la velocitat de caiguda.
  \end{abstract}

  \section{Obtenció de la Llei de Lenz}

  \begin{table}[ht]
    \centering
    \begin{adjustbox}{width=\textwidth}
      \begin{tabular}{r | *{8}{C{20.4mm}}}
        & Sentit + del corrent en el solenoide & Pol de l'imant encarat al solenoide? & Signe del $\varphi_{\text{inicial}}$ & L'imant respecte al solenoide & Variació del mòdul de $B$ & Signe del $\varphi_{\text{final}}$ & Signe de $\varphi_{\text{fin.}} - \varphi_{\text{ini.}}$ & Signe de $I_{\text{induït}}$ \\
        \hline
        & Horari o antihorari? & N/S? & +/-? & S'acosta o s'allunya? & Augmenta o disminueix? & +/-? & +/-? & +/-? \\
        \hline
        Exp. 1 & Horari & N & + & S'acosta & Augmenta & + & + & - \\
        Exp. 2 & Horari & S & - & S'acosta & Augmenta & - & - & + \\
        Exp. 3 & Horari & N & + & S'allunya & Disminueix & + & - & + \\
      \end{tabular}
    \end{adjustbox}
    \caption{Resultats de l'experiment 8.3.2 del guió de la pràctica.}
  \end{table}

  \begin{center}
    \centering
    \includegraphics[scale=0.75,page=1]{lenz_diagram.pdf}
    \captionof{figure}{Dibuix esquemàtic de l'experiment 1.}
  \end{center}

  \newpage

  \section{Velocitat de caiguda uniforme}

  \begin{center}
    \begin{minipage}{\textwidth}
      \begin{multicols}{2}
        \null \vfill
        \begin{center}
          \centering
          \pgfplotstabletypeset[
              columns/0/.style={column name=Distància $(\si{\centi\meter})$, fixed, fixed zerofill, precision=0},
              columns/1/.style={column name=Temps $(\si{\second})$, fixed, fixed zerofill, precision=2}
          ]{../data/velocitat_gruixuda.dat}

          \vspace{1em}

          \textbf{Velocitat de caiguda:} $\SI{7.4(7)}{\centi\meter \per \second}$
        \end{center}

        \vfill \null
        \columnbreak

        \begin{center}
          \centering
          \vspace{-2em}
          \input{../output/velocitat_gruixuda.tex}
        \end{center}
      \end{multicols}
      \captionof{figure}{Mesures de la barra gruixuda a l'experiment 8.3.4.}

      \vspace{2em}

      \begin{multicols}{2}
        \begin{center}
          \centering
          \pgfplotstabletypeset[
              columns/0/.style={column name=Distància $(\si{\centi\meter})$, fixed, fixed zerofill, precision=0},
              columns/1/.style={column name=Temps $(\si{\second})$, fixed, fixed zerofill, precision=2}
          ]{../data/velocitat_fineta.dat}

          \vspace{1em}

          \textbf{Velocitat de caiguda:} $\SI{13.55(29)}{\centi\meter \per \second}$
        \end{center}

        \begin{center}
          \centering
          \vspace{-2em}
          \input{../output/velocitat_fineta.tex}
        \end{center}
      \end{multicols}
      \captionof{figure}{Mesures de la barra fineta a l'experiment 8.3.4.}
    \end{minipage}
  \end{center}

  Les velocitats s'han obtingut com la inversa de la pendent de la recta de regressió. S'ha suposat que les incerteses sistemàtiques de mesurar el temps són de $\SI{0.1}{\second}$ i les de mesurar l'espai són de $\SI{1}{\centi\meter}$.

  \section{Força magnètica proporcional a la velocitat}

  \begin{center}
    \begin{minipage}{\textwidth}
      \begin{multicols}{2}
        \null \vfill
        \begin{center}
          \centering
          \pgfplotstabletypeset[
              columns/0/.style={column name=Massa total $(\si{\gram})$, fixed, fixed zerofill, precision=0},
              columns/1/.style={column name=Temps $(\si{\second})$, fixed, fixed zerofill, precision=2}
          ]{../data/massa_temps.dat}
          \captionof{figure}{Mesures de l'experiment 8.3.5 de la guia. Són les mesures del temps que triga en caure la barra $\SI{25}{\centi\meter}$ en funció de la seva massa total. S'ha repetit l'experiment $n = 4$ cops per obtenir mesures precises.}
        \end{center}

        \vfill \null
        \columnbreak

        \begin{center}
          \centering
          \vspace{-2em}
          \input{../output/forca_velocitat.tex}
          \captionof{figure}{Gràfica que mostra les velocitats obtingudes en funció de les forces magnètiques.}
        \end{center}
      \end{multicols}
    \end{minipage}
  \end{center}

  \section{Fil conductor, espira i corrents de Foucault}

  \begin{center}
    \centering
    \vspace{-2em}
    \input{../output/fil_espira_foucault.tex}
    \captionof{figure}{Gràfica que mostra la tensió en funció del temps enregistrat en executar els experiments 8.3.7, 8.3.8 i 8.3.9.}
  \end{center}

  De l'anterior gràfica podem observar que
  \[ |V_{\text{max}}(\text{fil})| = \SI{2.45}{\milli\volt}. \]

  Tenint en compte que $v = \SI{0.086}{\meter\per\second}$, $B = \SI{0.77}{\tesla}$ i $l = \SI{0.041}{\meter}$, obtenim que:
  \[ vBl = \SI{2.72}{\milli\volt}. \]

  Observem que això ens permet reafirmar-nos en el fet que la força electromotriu que s'indueix és realment $\varepsilon = vBl$, tal com havíem deduït teòricament al començament de la pràctica.

  Per acceptar la hipòtesi nul·la $H_0: \varepsilon = vBl$, és necessari establir i realitzar una prova d'hipòtesi, que al grau de física normalment fem mitjançant el càlcul d'incerteses i discrepàncies. En tot cas, aquest procediment queda fora de l'àmbit d'aquest informe.

  Per altra banda, també podem observar que la força electromotriu que s'indueix a l'espira és senar respecte el centre de l'espira: és a dir, la força electromotriu induïda canvia de sentit depenent si la barra està entrant o sortint de l'iman (cosa que hem comprovat al primer experiment).

  Finalment, observem també que la tensió màxima del fil ($|V_{\text{max}}(\text{fil})| = \SI{2.45}{\milli\volt}$) és inferior a la de les corrents de Foucault ($|V_{\text{max}}(\text{Foucault})| = \SI{2.6}{\milli\volt}$).

\end{document}
