Table des matières Python

Bobines de Helmholtz

1. Introduction

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 :

μ0I2πa=210-7Ia

a est le rayon des spires et I l'intensité du courant. Par exemple pour a=0,1m et I=1A, l'unité est de 10-6 T.

2. Champ magnétique

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()
            
figAfigA.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()
            
figBfigB.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()
            
figCfigC.pdf

3. Mouvement d'une particule chargée

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()
            
figDfigD.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()
            
figEfigE.pdf
Creative Commons LicenseTextes et figures sont mis à disposition sous contrat Creative Commons.