Problèmes 2D

Simplifications

Dans le cas de problèmes 2D plans ou axisymétriques, la formulation en potentiel vecteur magnétique se ramène à calculer uniquement ses composantes $a_z(x,y)$ ou $a_\theta(r,z)$.

Dans ces cas, la jauge de Coulomb $(\text{div}\,{\bf a} = 0)$ est automatiquement vérifiée et n’a pas besoin d’être spécifiquement imposée.

Pour définir $W^1$ approximant $\textbf{H}({\bf rot},\Omega)$, il existe dans GetDP des fonctions de base spécialement dédiées. Elles sont associées à des arrêtes fictives s’appuyant sur les nœuds du domaine et perpendiculaires au plan d’étude. En pratique, nous pourrons définir notre espace d’aproximation comme suit :

FunctionSpace {
  { Name Hrot ; Type Form1P ; 
    BasisFunction { 
      { Name se ; NameOfCoef ae ; Function BF_PerpendicularEdge ; 
	 	  Support Region[{Domaine}]  ; Entity NodesOf[All] ; }  } 
    Constraint {
      { NameOfCoef ae  ; EntityType NodesOf ; NameOfConstraint Dirichlet ; }
    }
  }  
}

Applications

Un premier problème simple sans source : un cylindre plongé dans un champ uniforme

Traiter numériquement l’exercice du cylindre plongé dans un champ uniforme :

  1. Trouver les conditions aux limites à imposer aux frontières du domaine (cubique) permettant d’obtenir un champ horizontal uniforme de $1~\text{T}$ à l’intérieur.
  2. Ajouter un cylindre au centre du domaine pour traiter les 3 cas possibles en fonction du type de matériau : cylindre_dans_champ_uniforme

Dimensionnement d’une inductance pour électronique de puissance

Pour des besoins d’électronique de puissance (ne m’en demandez pas plus), on désire concevoir une inductance de 250 µH sous 15 A avec :

  • des noyaux de ferrites de type E 42/21/20 dont les caractéristiques sont fournies par cette datasheet ;
  • du fil de cuivre émaillé de 2,5 mm² (diamètre de 1,8 mm)

Simuler le problème correspondant et donner une solution.

Après avoir traité le problème avec une loi de comportement magnétique linéaire dans la ferrite ($\mu_r$ constant), il faudra sûrement résoudre le problème en prenant en compte la non-linéarité de cette loi. Pour ce faire, je vous renvoie à cette explication très bien faite sur le wiki de GetDP. Vous pouvez également consulter cette page.

Je vous fournis également la définition complète du matériau (N27) de la ferrite (en utilisant les mêmes notations que dans les exemples du wiki) :

Function{		
  If(NonLineaire)
    Mat_core_b = {0.000000, 0.068851, 0.079231, 0.096630, 0.104285, 0.117920, 0.123374, 
      0.150912, 0.191749, 0.202635, 0.239024, 0.243936, 0.245556, 0.267244, 
      0.290565, 0.296190, 0.312896, 0.313356, 0.335942, 0.364839, 0.368482, 
      0.376766, 0.477117, 0.494881, 0.666990, 0.828539, 0.832720};

    Mat_core_h = {0.000000, 44.635198, 47.996938, 54.360481, 57.254136, 63.513926, 66.205407, 
      83.184012, 128.638642, 150.321852, 280.295679, 307.761975, 317.501481, 
      486.037901, 775.608272, 869.477778, 1359.072840, 1373.269136, 2431.451852, 
      5699.176543, 6389.154321, 8458.007407, 61532.617284, 73419.641975, 
      197003.703704, 321027.901235, 324350.000000};

    Mat_core_b2 = Mat_core_b()^2;
    Mat_core_h2 = Mat_core_h()^2;
    Mat_core_nu = Mat_core_h() / Mat_core_b();
    Mat_core_nu(0) = Mat_core_nu(1);
    Mat_core_nu_b2  = ListAlt[Mat_core_b2(), Mat_core_nu()] ;
    nu_core[] = InterpolationLinear[ SquNorm[$1] ]{ Mat_core_nu_b2() } ;
    dnudb2_core[] = dInterpolationLinear[SquNorm[$1]]{ Mat_core_nu_b2() } ;
    h_core[] = nu_core[$1] * $1 ;
    dhdb_core[] = TensorDiag[1,1,1] * nu_core[$1#1] + 2*dnudb2_core[#1] * SquDyadicProduct[#1]  ;
    nu[ Ferrite ]  = nu_core[$1];
    dhdb[ Ferrite ] = dhdb_core[$1];
  Else
    nu[ Ferrite ]  = 1./(mur*mu0);
  EndIf
}

Un exemple de résultat possible pourrait être par exemple :

Inductance


Accouplement magnétique à aimants permanent

Apprès avoir détaillé son principe de fonctionnement, résoudre le problème correspondant à un coupleur à aimants tel que représenté ci-dessous :

Représentation schématique d'un pôle de coupleur considéré

Pour gagner du temps, vous pouvez télécharger la géométrie en cliquant sur ce lien .

Il faudra utiliser des conditions de périodicité puisque nous travaillerons sur un pôle.

Je vous donne un exemple d’implantation de ce type de conditions ci-dessous :

Constraint {	
  {Name Anticyclique;
    Case {
       { Region Gauche; Type Link; RegionRef Droite;
		  Coefficient (-1) ; Function Rotate[ Vector[$X,$Y,$Z], 0, 0, -Pi/p ] ; } 
    }
  }
}

Pour le calcul du couple, une bonne approche consiste à moyenner, sur le volume d’entrefer sous un pôle $(V_e = S_e\,L_z)$, l’expression obtenue par le tenseur de Maxwell. Montrer préalablement (sur papier) que cette moyenne peut s’écrire : $$ \displaystyle \Gamma = \frac{2\,p~L_z}{\mu_0\,e} \iint_{S_e} \frac{(x^2-y^2)\,b_x b_y + x y\,(b_y^2-b_x^2)}{\sqrt{x^2+y^2}}\,dxdy$$ Cette formule sera ensuite facile à implanter dans le post-processeur de GetDP.

Cet exemple est tiré de cet excellent article des Techniques de l’Ingénieur. Oui, je fais de l’auto-promo 😉
Si vous le souhaitez, vous pouvez le télécharger avec l’abonnement de l’UL en cliquant ici.