Magnetica

une application particulière de Mathematica
à la Magnétostatique

Lucien Donadieu
   Magneticasoft
Hervé Saint Jalmes
          Université Claude Bernard
Lyon

-1  Théorie, Méthodologie et IRM

La magnétostatique

Science de la génération des champs magnétiques.

lois de Maxwell  (James Clerk 1873) . 
 lois differentielles ( locales ) et vectorielles

▽ × B  =  µ𝓋  J

▽ • B  =  0

technologie de la génération  des champs magnétiques:
un enroulement dans lequel passe du courant

le résultat  un champ magnétique :
carte du champ dans la region centrale

La methodologie du calcul

intégration des effets différentiels pour le volume de l'enroulement
Loi de Boit et Savart

B = µ(𝓋/(4  π))∫(J/(Rps^2)) dV

Mais cette formule n'est pas l'outil ideal et universel pour calculer les champs magnétiques
2 approches possibles:
a) une approche amperienne : le potentiel vecteur

B =  ▽×A

A = µ(𝓋/(4  π))∫(J/Rps) \(\(d\)\(V\)\(\ \ \ \ \ \ \ \ \ \ \)\)

Ex: mise en oeuvre pour une simple boucle de courant circulaire : les intégrales elliptiques

A = ((Subscript[μ, ν])/(4  π))× NI×(Sqrt[(Rb/Rc)])×(1/k)× [((1-(k^2))/2)×EllipticK(k) - EllipticE(k)]

b) une approche coulombienne : le potentiel scalaire
  restriction :  valable dans un espace sans source de champ (courant)

B =   ▽E

▽²E = 0

solution: un développement en série par les harmoniques sphériques
 Ex:  mise en oeuvre pour une simple boucle de courant circulaire

Bz (Zc, Rc)=  ((Subscript[μ, ν])/2)×(NI/Rlgc)      (∑_(n = 0)^(n -> ∞)) ⟨((((Rlgc/Rbhsc)))^(n + 1))× (Ss^2) ×P' (Subscript[(Lg ), n + 1])(Us)⟩
[[×((((Rchs/Rlgc)))^n)× (Subscript[PLg, n])(Uc)]]

Plg = LegendreP[N,u]

L'imagerie par résonance magnetique (IRM)

1980, le defi

un défi en matière de design d'aimant
 a) Bz donné champ puisant 1000 à 30000 gauss.
 b) Homogénéité du Champ dB/dV < 10^5
 (< 1 mm sur une surface de 1 hectare!)
 c) dans un grand volume: sphère de 500 mm de diamètre

A l'époque, on ne  savait ni bien calculer (FEMM précision 1 %), et encore moins faire

nouvelle approche
utilisation des harmoniques sphériques 
et optimisation
programmation classique, Fortran, C, MathLab, Simplex, algorithmes de Brent/Powell 
mais manipulations laborieuses

1988, Mathematica version 1

le déclic

les bases de la solution
 a ) Intégration analytique formelle
 b) Intégration numérique haute précision (quadratures de Gauss-Legendre)
 c) Manipulation polynômes de Legendre facile quelle que soit l'ordre
 d) un outil d'optimisation

Les versions successives n'ont fait que conforter ce choix.

2- Exemple  IRM 1.5 teslas, supraconducteur

Les données

iampsu=766.7908523598545;
MRImagnet=CylindricalSystem[
{Win2AsCylSol[SuperNbTi4L, 20, 1120, 1280, 60,-108.29012662326866, 679.,iampsu,4], 
 Win2AsCylSol[SuperNbTi4L, 20, 1120,1280, 60,108.29012662326866, 679.,iampsu, 4], 
 Win2AsCylSol[SuperNbTi4L, 20, 1120, 1280,80,-335.1989704952877,659.,iampsu, 4], 
 Win2AsCylSol[SuperNbTi4L, 20, 1120, 1280,80,335.1989704952877, 659.,iampsu, 4], 
 Win2AsCylSol[SuperNbTi4L, 20, 1120, 1240,180,-697.642715356854, 1545,iampsu, 4], 
 Win2AsCylSol[SuperNbTi4L, 20, 1120, 1240,180, 697.642715356854, 1545,iampsu, 4], 
 Win2AsCylSol[SuperNbTi4L, 20, 1700, 1860,80,-134.41807753795598,-655,iampsu, 4], 
 Win2AsCylSol[SuperNbTi4L, 20, 1700, 1860,80, 134.41807753795598,-655,iampsu, 4], 
 Win2AsCylSol[SuperNbTi4L, 20, 1700, 1860, 80,-887.6632666898012,-633,iampsu, 4], 
 Win2AsCylSol[SuperNbTi4L, 20, 1700, 1860, 80,887.6632666898012,-633,iampsu, 4]}, 
 SystemLabel -> "IRM supraconducteur 1.5 T à blindage actif"];
 SaveName[MRImagnet]

L'aimant supraconducteur

Draw3DSystem[MRImagnet];

Draw2DSystem[MRImagnet];

Le champ magnétique

FieldIsoCenter[MRImagnet,2]

FieldMap2DContinuous[MRImagnet,{0,-1000},2000,z,{Bz}];

FieldMap3DContinuous[MRImagnet, FieldGraf, 
      ZR,  {BZ}, {-250, -250}, {250, 
        250}, 
FieldMode -> Harmonic, 
      NumberPoints -> 30]

FieldMap3DContinuous[MRImagnet, ContourGraf, 
        ZR,  {BZ}, {-250, -250}, 
{250, 
          250}];

Draw2DStrayField2AsCyl[MRImagnet,{5,3},NumberAngles->30,AngularRange->{0,360}];

Force2DAsCylindSol[MRImagnet,5,2,1];

3 - Optimization de l'aimant

Les coefficients Legendre

Ces coefficients constituent une mesure globale de l'intensité du champ ainsi que de sa qualité.
Ils vont être utilisés pour réaliser l'optimisation.

PrintLegendreSource[MRImagnet,Mode -> Relative];

L'optimisation

Processus d'optmisation utilisant FindMinimum
optimisation multicritéres, multi variables, algorithme de Brent/Powell
minimisation d'un functionel,  terme désignant un fonction numérique positive
   par sommation des objectifs  fixés
   
point de départ : une estimation (relevante, pas nécessairement trés proche de la solution)

MRIguess=CylindricalSystem[{
Win2AsCylSol[SuperNbTi4L, 20, 1020, 1060, 100, -75, 534, 735, 4], 
Win2AsCylSol[SuperNbTi4L, 20, 1020, 1060, 100, 75, 534, 735, 4], 
Win2AsCylSol[SuperNbTi4L, 20, 1020, 1060, 80, -270, 620, 735, 4], 
Win2AsCylSol[SuperNbTi4L, 20, 1020, 1060, 80, 270, 620, 735, 4], 
Win2AsCylSol[SuperNbTi4L, 20, 1020, 1060, 225, -600, 1404, 735, 4], 
Win2AsCylSol[SuperNbTi4L, 20, 1020, 1060, 225, 600, 1404, 735, 4], 
Win2AsCylSol[SuperNbTi4L, 20, 1590, 1630, 50, -25, -591, 735, 4], 
Win2AsCylSol[SuperNbTi4L, 20, 1590, 1630, 50, 25, -591, 735, 4], 
Win2AsCylSol[SuperNbTi4L, 20, 1590, 1630, 45, -720, -452, 735, 4], 
Win2AsCylSol[SuperNbTi4L, 20, 1590, 1630, 45, 720, -452, 735, 4]}, 
SystemLabel -> "MRI superconducting magnet 1.5 T. 10 pair coils guess1"];
SaveName[MRIguess];

FieldIsoCenter[MRIguess]

PrintLegendreSource[MRIguess,Mode -> Relative];

le processus d'optimisation

ttp=0;
ProcessOptimization[MRIguess,{1,2,3,4,5,6},Objective->{{Bc,15000},
{Dc2,0},{Dc4,0}},
   VariableOpt ->{PosZ},BcMode -> 3, Kprocess->11];

suivi du processus

ResultOptimization[MRIguess,3]

Le résultat

Le résultat de l'optimisation: un nouvel aimant
remplissant les objectifs fixés
et pouvant être utilisé pour améliorer encore plus l'optimisation

ttm=0;
ResultOptimization[MRIguess,2]

NewOptimizedSystem[MRIguess]

CylindricalSystem[{Win2AsCylSol[SuperNbTi4L, 20, 1020, 1060, 100, -74.36178355942859, 534, 735, 4], Win2AsCylSol[SuperNbTi4L, 20, 1020, 1060, 100, 74.36178355942859, 534, 735, 4], Win2AsCylSol[SuperNbTi4L, 20, 1020, 1060, 80, -269.5598780988358, 620, 735, 4], Win2AsCylSol[SuperNbTi4L, 20, 1020, 1060, 80, 269.5598780988358, 620, 735, 4], Win2AsCylSol[SuperNbTi4L, 20, 1020, 1060, 225, -604.4944630093297, 1404, 735, 4], Win2AsCylSol[SuperNbTi4L, 20, 1020, 1060, 225, 604.4944630093297, 1404, 735, 4], Win2AsCylSol[SuperNbTi4L, 20, 1590, 1630, 50, -25, -591, 735, 4], Win2AsCylSol[SuperNbTi4L, 20, 1590, 1630, 50, 25, -591, 735, 4], Win2AsCylSol[SuperNbTi4L, 20, 1590, 1630, 45, -720, -452, 735, 4], Win2AsCylSol[SuperNbTi4L, 20, 1590, 1630, 45, 720, -452, 735, 4]}, SystemLabel -> "MRI superconducting magnet 1.5 T.   10 pair coils guess1 / MRIguessOpt2"]

FieldIsoCenter[MRIOptim]

PrintLegendreSource[MRIOptim,Mode -> Relative];

4 - Blindage d'une salle d'examen

Propriétés du materiau de blindage

acier au Silicium  (à grains non orientés) 
 matériau ferromagnétique à aimantation non linéaire, réversible
 Aimantation à saturation:                      19800 gauss
 Maximum de perméabilité relative :         9063

PrintMaterialProperties[SiSteel3L]

PlotReversibleMagnetization[SiSteel3L, {Mag, Perm}, 0, 6]

analyse du blindage

données

iampsu=766.7908523598545;
MRImagnetShield=CartesianSystem[
{Win2AsCylSol[SuperNbTi4L, 20, 1120, 1280, 60,-108.29012662326866, 679.,iampsu,4], 
 Win2AsCylSol[SuperNbTi4L, 20, 1120,1280, 60,108.29012662326866, 679.,iampsu, 4], 
 Win2AsCylSol[SuperNbTi4L, 20, 1120, 1280,80,-335.1989704952877,659.,iampsu, 4], 
 Win2AsCylSol[SuperNbTi4L, 20, 1120, 1280,80,335.1989704952877, 659.,iampsu, 4], 
 Win2AsCylSol[SuperNbTi4L, 20, 1120, 1240,180,-697.642715356854, 1545,iampsu, 4], 
 Win2AsCylSol[SuperNbTi4L, 20, 1120, 1240,180, 697.642715356854, 1545,iampsu, 4], 
 Win2AsCylSol[SuperNbTi4L, 20, 1700, 1860,80,-134.41807753795598,-655,iampsu, 4], 
 Win2AsCylSol[SuperNbTi4L, 20, 1700, 1860,80, 134.41807753795598,-655,iampsu, 4], 
 Win2AsCylSol[SuperNbTi4L, 20, 1700, 1860, 80,-887.6632666898012,-633,iampsu, 4], 
 Win2AsCylSol[SuperNbTi4L, 20, 1700, 1860, 80,887.6632666898012,-633,iampsu, 4], 
 Mag3DCarCubRever[SiSteel3L,20,{3,2600,4500}, {1600,300,-250},1,2]},
 SystemLabel -> "IRM supraconducteur 1.5 T, blindage salle"];
 SaveName[MRImagnetShield]

dessin

Draw3DSystem[MRImagnetShield]

Draw2DSystem[MRImagnetShield, DrawType -> ZXC]

champ créé par la plaque au centre de l'aimant

FieldIsoCenter[MRImagnetShield,2]

champ résiduel derrière la plaque

Draw2DStrayField3DCart[MRImagnetShield,{5,3}, OutputType->ZX,NumberPoints->30];//Timing

5 - Conclusion

Les fonctionnalités de Mathematica :
  ●  intégration analytique formelle
  ●  intégration numérique  haute précision utilisant les quadratures de Gauss-Legendre
  ●  Les fonctions mathématiques et notamment celles des polynômes de Legendre
  ●  La fonction d'optimisation FindMinimum
  ●  La fonction d'ajustement Fit
  ●  La fonction de calcul d'équation linéaire matricielle de grande dimension LinearSolve
ont été mise à profit dans le logiciel Magnetica pour en faire un remarquable outil de calcul pour la Magnetostatique.
Les principales qualités de Magnetica sont :  
■ haute précision
■ convivialité
■ simplicité d'utilisation
■ rapidité des calculs.
Son utilisation permet de résoudre d'une nouvelle manière de trés nombreux problémes concrets de l'électromagnétisme, notamment:
◆ design d'aimants et plus généralement d'appareils basés sur une interaction magnétique (inductance, transformateurs,..)  
◆ blindage magnétique (réduction du champ statique ou de perturbations basse fréquence)
◆ calcul et expertise en CEM (Compatibilité ElectroMagnétique) 
◆ études, recherche et développement impliquant des champs magnétiques
◆ évaluation des matériaux "magnétiques" : aciers doux et aciers au silicium, alliages à haute perméabilité magnétique, matériaux à aimantation permanente (Alnico, Ferrites, composites Fer,Neodyme,Bore)