Cette page montre le calcul du champ magnétique créé par des bobines de Helmholtz, modélisées par deux spires. La méthode et le module python utilisés sont décrits dans Boucles circulaires coaxiales.
Les spires ont par convention un rayon égal à 1. L'unité du champ magnétique calculé est alors :
où a est le rayon des spires et I l'intensité du courant. Par exemple pour a=0,1 m et I=1 A, l'unité est de 10-6 T.
import os os.sys.path.append("../pyspire") from SpiresCoaxiales import * import numpy from matplotlib.pyplot import *
Les bobines de Helmholtz sont consituées de deux spires de rayon 1 espacées de 1
max=5.0 bobines = SystemeSpires(-max,max,-max,max) bobines.ajouter(Spire(1.0,0.5,1.0)) bobines.ajouter(Spire(1.0,-0.5,1.0))
Tracé des lignes de champ :
figure(figsize=(7,7)) bobines.plot_lignes([[0.0,0.0],[0.15,0.0],[0.3,0.0],[0.45,0.0],[0.6,0.0],[0.75,0.0],[0.9,0.0]],'b') axis([-max,max,-max,max]) xlabel('z') ylabel('r') grid()figA.pdf
Champ magnétique axial sur l'axe :
z = numpy.arange(-5.0,5.0,0.01) bz = bobines.Bz_z(0.0,z) figure() plot(z,bz) xlabel("z") ylabel("Bz") title("r=0") grid()figB.pdf
Champ magnétique axial sur le plan médian (plan z=0.0) :
x = numpy.arange(-3.0,3.0,0.01) bz = bobines.Bz_x(x,0.0) figure() plot(x,bz) xlabel("r") ylabel("Bz") title("z=0") axis([-3,3,-5,5]) grid()figC.pdf
On s'intéresse à la trajectoire d'une particule chargée dans le plan méridien tournant (coordonnées cylindriques z et r). La particule part d'un point très proche de l'axe, là où le champ est très faible. La vitesse initiale axiale est constante; on fait varier la vitesse innitiale radiale.
figure() r0 = 0.001 z0=-4.0 tmax=100.0 te=0.01 [r1,theta1,z1] = bobines.trajectoire(1.0,r0,z0,0.05,1.0,tmax,te) plot(z1,r1,'r') [r2,theta2,z2] = bobines.trajectoire(1.0,r0,z0,0.02,1.0,tmax,te) plot(z2,r2,'g') [r3,theta3,z3] = bobines.trajectoire(1.0,r0,z0,0.1,1.0,tmax,te) plot(z3,r3,'b') axis([-5.0,5.0,-1.0,1.0]) xlabel('z') ylabel('r') grid()figD.pdf
Rotation du plan méridien pour ces trajectoires :
figure() plot(z1,theta1,'r') plot(z2,theta2,'g') plot(z3,theta3,'b') xlabel('z') ylabel('theta') grid()figE.pdf