La théorie est ici : I.1. Calcul du moment magnétique des projectiles.
On veut tracer $$\omega_0^2 = \frac{\mu B}{J}.$$ pour plusieurs valeurs de B, avec J connu pour l'aimant.
Le coefficient directeur nous donnera $\mu$.
Matériel :
Manip :
Ce n'est pas grave si elles ne sont pas centrées autour d'une valeur constante, tout ce qui nous intéresse est le nombre d'oscillations et la durée totales.
On utilise l'IDE Spyder pour coder en pyhton et tracer les graphs. Voici le code utilisé :
import numpy as np import matplotlib.pyplot as plt from scipy import optimize #Petit cyclindre m_pc = 2.442e-3 R_pc = 2.4e-3 h_pc = 17.0e-3 J_pc = m_pc/4*(R_pc**2+ h_pc**2/3) print("J_pc = ", J_pc); ############ Resultats de Tracker pour le petit cylindre ###### B = [0.11, 0.23, 0.33, 0.47, 0.60]#en milli testa T = [10.281-6.255, 7.732-3.140, 7.952-3.560, 7.619 - 2.728, 5.724 - 0.068] N_osc = [14.0, 24.0, 28.0, 37.0, 49.0] X = [] Y = [] error_array = np.array([]) dT = 0.1 #incertitude pour les mesures de T for (t, n, b) in zip(T, N_osc, B): Y.append((2*np.pi*n/t)**2) X.append(b*1e-3/J_pc) error_array = np.append(error_array, 2*2*np.pi*n*dT/(t**2)) X = np.array(X) Y = np.array(Y) plt.figure('Petit_cylindre') plt.scatter(X, Y, c='black') #plt.errorbar(X, Y, yerr=error_array) sert à rien, barres trop petites plt.xlabel(r'$B / J$') plt.ylabel(r'$\omega_0^2$') plt.title("Pulsation caractéristique du petit cylindre dans le champ B") def test_func(x, a, b): return a * x + b params, params_covariance = optimize.curve_fit(test_func, X, Y, p0=[0,2.0]) plt.plot(X, test_func(X, *params), 'g--', label='fit: a=%5.3f, b=%5.3f' % tuple(params)) plt.legend(loc='best') plt.show()
On obtient de magnifiques graphiques. Le moment magnétique correspond au coefficient directeur du fit, soit a.
Petite bille :
$\mu = 1.237 Nm/T$
Petit cylindre:
Ici on peut lire $\mu = 0.314 Nm/T$.
Gros cylindre :
$\mu = 1.413 Nm/T$
Nous allons maintenant mesurer l'accélération de ces 3 projectiles dans des conditions similaires, et voir si elle est proportionnelle au moment magnétique.
Nous avons suivi le protocole “Autre détermination numérique de l'accélération” de I.3. Détermination de la vitesse pour traquer la position de la bille avec Tracker, puis scipy pour en déduire l'accélération.
Voici le code utilisé :
import numpy as np import matplotlib.pyplot as plt from scipy import optimize def plot_acc(time, pos, proj): plt.rc('text', usetex = True) plt.rc('font', family = 'serif', weight = 'bold') plt.figure('acc {0}'.format(proj)) plt.scatter(time, pos, c='black') #plt.errorbar(time, pos, yerr=error_pos) plt.xlabel(r'$t$') plt.ylabel(r'$pos x$') plt.title('Accélération {0}'.format(proj)) #fitting curve params, params_covariance = optimize.curve_fit(func_exp, time, pos, p0=[1.0, 0.1], maxfev=2000) plt.plot(time, func_exp(time, *params), 'g--', label='fit: a*exp(b*t) a=%2.5f, b=%3.3f' % tuple(params)) plt.legend(loc='best') plt.show() def func_parabole(t, a, b, c, d): return a*(t**3) + b*(t**2) + c*t + d def func_exp(t, a, b): return a*np.exp(b*t) ############# Acceleration Bille ################### t_bille =[8.908, 8.941, 8.974, 9.008, 9.041, 9.074, 9.108, 9.141] x_pos_bille = [-4.981E-2, -4.813E-2, -4.543E-2, -4.155E-2, -3.616E-2, -2.520E-2, -1.087E-2, 2.689E-2] #error_pos = [0.01, 0.04, 0.08, 0.1, 0.12, 0.3, 0.4, 0.5] t_bille = np.array(t_bille) t_bille = t_bille - 8.908 x_pos_bille = np.array(x_pos_bille) x_pos_bille = x_pos_bille + 4.981E-2 #error_array = np.array([]) plot_acc(t_bille, x_pos_bille, 'bille')
L'allure des graph de x(t) se rapproche d'une fonction exponentielle, nous utiliserons donc un fit de la forme $y(t) = a.exp(bt)$.
Note importante : pour faire le fit par une fonction exponentielle, il vaut mieux translater la courbe pour qu'elle démarre à l'origine. Cela augmente considérablement la vitesse d’exécution de l'algorithme de fit de scipy.
Voici ce que nous obtenons avec la fonction curve_fit :
Petite bille:
L'accélération est donc : $ a(t) = a.b^2.exp(bt)$.
Ce qui nous donne ici : $a(t) \approx 0.38exp(17.8t)$ pour $\mu = 1.237 Nm/T$.
Petit cylindre:
L'accélération est donc : $a(t) \approx 0.09exp(14t)$ pour $\mu = 0.314 Nm/T$.
Gros cylindre:
L'accélération est donc : $a(t) \approx 0.01.exp(15t)$ pour $\mu = 1.413 Nm/T$.
Puisque nous voulions étudier l'accélération en fonction de $\mu$ :
- Il semblerait que ce ne soit pas le moment magnétique qui ait l'influence la plus importante sur l'accélération, en effet il est difficile de voir une relation hiérarchique claire à partir de ces 3 valeurs.
Cependant en comparant deux aimants de géométries équivalentes, les deux cylindres, on remarque que c'est le petit qui parcourt $\Delta x=8cm$ le plus vite, malgré un moment magnétique presque 5 fois plus faible, ce qui infirme l'hypothèse de départ (snif).
- En revanche il est intéressant de voir que c'est la petite bille qui passe de $x = 0cm$ à $x = 8cm$ le plus rapidement, en $t \approx 230ms$. Nous pensons que l'étude des frottements, qui devraient être minimaux pour la bille, permettra d'expliquer ces graphiques de manière plus probante.