Télécharger biot_iseult.dgibi

Retour à la liste

Numérotation des lignes :

  1. optio echo 1;
  2. ************************************************************************
  3. * Test de quelques operatéurs pour le magnétisme (BIOT) *
  4. * et la mécanique des structures *
  5. * *
  6. * Calcul du champ d'induction magnétique crée par un aimant d'IRM dans *
  7. * l'espace autour de l'aimant, puis des forces de Laplace et des *
  8. * contraintes mécaniques dans l'aimant *
  9. * *
  10. * Application à l'aimant de l'IRM Iseult *
  11. * *
  12. * Référence : *
  13. * F. Nunio, G. Aubert, C. Berriaud, T. Schild and P. Vedrine, *
  14. * "Full Resolution Structural Finite Element Analysis of the CEA/ *
  15. * Iseult 11.75T MRI Coil" *
  16. * Publié dans IEEE Transactions on Applied Superconductivity, *
  17. * vol. 18, no. 2, pp. 916-919, Juin 2008 *
  18. * doi: 10.1109/TASC.2008.922544 *
  19. * *
  20. ************************************************************************
  21.  
  22.  
  23.  
  24. ** Désactivation de l'echo des commandes
  25. *OPTI 'ECHO' 0 ;
  26.  
  27. ** Indicateur de tracé
  28. itrac = FAUX ;
  29.  
  30.  
  31.  
  32. *------------------------- P A R A M È T R E S ------------------------*
  33.  
  34. ** Dimensions de la bobine principale
  35. rint1 = 0.498 ;
  36. rext1 = 0.941 ;
  37. zinf1 = -1.915 ;
  38. zsup1 = 1.915 ;
  39.  
  40. ** Dimensions des bobines de blindage
  41. rint2 = 1.97 ;
  42. rext2 = 2.14 ;
  43. zinf2 = -1.072 ;
  44. zsup2 = -0.564 ;
  45. rint3 = 1.97 ;
  46. rext3 = 2.14 ;
  47. zinf3 = 0.564 ;
  48. zsup3 = 1.072 ;
  49.  
  50. ** Perméabilité magnétique du milieu
  51. mu = 12.566E-7 ;
  52.  
  53. ** Paramètres géométriques des inducteurs
  54. * Les bobines sont modelisées en un ensemble d'inducteurs circulaires à
  55. * section rectangulaire. Les sections sont décrites par les listes :
  56. * la1/la2 : liste des rayon internes/externes
  57. * lb1/lb2 : liste des hauteurs
  58. la1 = PROG rint1 rint2 rint2 ;
  59. la2 = PROG rext1 rext2 rext2 ;
  60. lb1 = PROG zinf1 zinf2 zinf3 ;
  61. lb2 = PROG zsup1 zsup2 zsup3 ;
  62.  
  63. ** Liste des densités de courant (A.m-2) pour chaque bobine
  64. * ici le courant est uniquement dans la direction circonferentielle theta
  65. * en 2d axi : le sens positif correspond à UR^UZ (vers le fond de l'écran)
  66. * en 3d : le sens positif s'enroule autour de l'axe -1 * y selon la
  67. * règle de la main droite
  68. jprin = -25.13E6 ;
  69. jecra = 32.56E6 ;
  70. lj = PROG jprin jecra jecra ;
  71.  
  72. ** Taille du domaine où calculer le champ magnétique
  73. r1 = 0. ;
  74. r2 = 5. ;
  75. h1 = -5. ;
  76. h2 = 5. ;
  77.  
  78.  
  79.  
  80. *------------------ 2 D A X I S Y M É T R I Q U E -------------------*
  81.  
  82. ** Options de calcul
  83. OPTI 'DIME' 2 'MODE' 'AXIS' ;
  84.  
  85. ** Calcul magnétique (champ d'induction magnétique)
  86. * maillage des points cibles (où calculer le champ d'induction)
  87. OPTI 'ELEM' 'QUA4' 'DENS' 0.1 ;
  88. cib = (DROI (r1 h1) (r2 h1)) TRAN (0. (h2 - h1)) ;
  89. ccib = CONT cib ;
  90. * définition/maillage des inducteurs
  91. OPTI 'ELEM' 'QUA8' 'DENS' 0.1 ;
  92. ni = DIME lj ;
  93. ind = VIDE 'MAILLAGE' ;
  94. tind = TABL ;
  95. moind = VIDE 'MMODEL' ;
  96. chbind = VIDE 'MCHAML' ;
  97. chjind = VIDE 'MCHAML' ;
  98. chb = VIDE 'CHPOINT' ;
  99. REPE bi ni ;
  100. * densité de courant dans l'inducteur &bi
  101. j1 = EXTR lj &bi ;
  102. * coordonnées de l'inducteur &bi
  103. a1 = EXTR la1 &bi ;
  104. a2 = EXTR la2 &bi ;
  105. b1 = EXTR lb1 &bi ;
  106. b2 = EXTR lb2 &bi ;
  107. bmoy = 0.5 * (b1 + b2) ;
  108. btot = b2 - b1 ;
  109. * maillage de l'inducteur &bi
  110. pi1 = a1 b1 ;
  111. pi2 = a2 b1 ;
  112. pi3 = a1 b2 ;
  113. pi4 = a2 b2 ;
  114. ind1 = REGL (DROI pi1 pi2) (DROI pi3 pi4) ;
  115. ind = ind ET ind1 ;
  116. tind . &bi = ind1 ;
  117. * modèle pour l'inducteur &bi
  118. moi1 = MODE ind1 'MECANIQUE' 'ELASTIQUE' 'ORTHOTROPE' ;
  119. moind = moind ET moi1 ;
  120. * calcul du champ d'induction magnétique dans le maillage de l'inducteur &bi
  121. * (utile pour le calcul mécanique qui suit)
  122. bind = BIOT 'INDU' moi1 'STRESSES' 'CERC' bmoy a1 a2 btot j1 mu ;
  123. * calcul du champ d'induction magnétique aux points cibles
  124. * (contribution de l'inducteur &bi)
  125. bcib = BIOT 'INDU' cib 'CERC' bmoy a1 a2 btot j1 mu ;
  126. * champ de densité de courant dans l'inducteur &bi
  127. chji = MANU 'CHML' moi1 'JT' j1 'STRESSES' ;
  128. * assemblage des champs
  129. chb = chb + bcib ;
  130. chbind = chbind + bind ;
  131. chjind = chjind + chji ;
  132. FIN bi ;
  133. cind = CONT ind ;
  134. * lignes de champ magnétique
  135. chv = EXCO (MOTS 'BR' 'BZ') chb (MOTS 'UR' 'UZ') ;
  136. fc = FCOURANT cib chv ;
  137. maxf = MAXI fc ;
  138. minf = MINI fc ;
  139. nlig = 21 ;
  140. lf = PROG minf 'PAS' ((maxf - minf) / (nlig + 1)) maxf ;
  141. lig toto = @ISOSURF cib lf fc ;
  142. chbm = CHAN 'CHAM' chb cib ;
  143. bm = (((EXCO 'BR' chbm 'SCAL') ** 2) + ((EXCO 'BZ' chbm 'SCAL') ** 2)) ** 0.5 ;
  144. blig = PROI bm lig ;
  145.  
  146. ** Calcul mécanique (déplacements/contraintes dans les inducteurs)
  147. ind1 = tind . 1 ;
  148. ind2 = tind . 2 ;
  149. ind3 = tind . 3 ;
  150. * modèle élastique orthotrope (1,2,3) <--> (r,z,t)
  151. maind = MATE moind 'YG1 ' 60.781E9 'YG2 ' 45.762E9 'YG3 ' 112.08E9
  152. 'NU12' 0.23988 'NU13' 0.19574 'NU23' 0.14228
  153. 'G12 ' 43.857E9 'DIRECTION' (1. 0.) ;
  154. * matrice de rigidité
  155. ri = RIGI moind maind ;
  156. * blocages
  157. pz = (ind1 POIN 'DROI' (0. 0.) (1. 0.)) ET
  158. (ind2 POIN 'DROI' (0. zsup2) (1. zsup2)) ET
  159. (ind3 POIN 'DROI' (0. zinf3) (1. zinf3)) ;
  160. blz = BLOQ 'UZ' pz ;
  161. * forces de Laplace (= j ^ B)
  162. fl = (-1. * (EXCO 'JT' chjind 'FR') * (EXCO 'BZ' chbind 'FR')) ET
  163. ( (EXCO 'JT' chjind 'FZ') * (EXCO 'BR' chbind 'FZ')) ;
  164. feq = CNEQ moind fl ;
  165. * champ de déplacements des bobines
  166. u = RESO (ri ET blz) feq ;
  167. * déformée et contraintes
  168. def = DEFO u ind 200. ;
  169. sig = SIGM moind maind u ;
  170.  
  171. ** Vérification des résultats
  172. MESS '----------------------------------------------' ;
  173. MESS '| Calcul 2D axis |' ;
  174. MESS '----------------------------------------------' ;
  175. * test du champ d'induction calculé au centre de l'aimant
  176. ptest1 = cib POIN 'PROC' (0. 0.) ;
  177. MESS ' Comp. | Valeur calculee | Valeur attendue' ;
  178. MESS ' -------+-----------------+----------------' ;
  179. brt = EXTR chb 'BR' ptest1 ;
  180. bzt = EXTR chb 'BZ' ptest1 ;
  181. MESS ' Br |' brt ' | 0.' ;
  182. MESS ' Bz |' bzt ' | 11.7' ;
  183. * test du champ de déplacement au rayon interne de l'aimant
  184. ptest2 = ind POIN 'PROC' (rint1 0.) ;
  185. urt = EXTR u 'UR' ptest2 ;
  186. uzt = EXTR u 'UZ' ptest2 ;
  187. MESS ' Ur |' urt ' | 7.75E-4' ;
  188. MESS ' Uz |' uzt ' | 0.' ;
  189. * erreur si trop d'écart aux valeurs attendues
  190. * on doit trouver Bz = 11,7 T au centre
  191. * et Ur = 7.75E-4 m au rayon interne
  192. err1 = MAXI 'ABS' brt ((bzt - 11.7) / 11.7) ;
  193. SI (err1 > 1.E-3) ;
  194. ERRE 'Erreur de calcul du champ d''induction B' ;
  195. FINSI ;
  196. err2 = MAXI 'ABS' ((urt - 7.75E-4) / 7.75E-4) uzt ;
  197. SI (err2 > 1.E-2) ;
  198. ERRE 'Erreur de calcul du champ de deplacements' ;
  199. FINSI ;
  200.  
  201. ** Quelques tracés
  202. SI itrac ;
  203. OPTI 'PALE' (PALE 'PLAS') ;
  204. vb = @VECOUL chb (MOTS 'BR' 'BZ') 3.E-2 ;
  205. TRAC vb (ccib ET cind) 'TITR' 'Champ B dans le domaine [2D axis]' ;
  206. TRAC blig lig (ccib ET cind) 'TITR' 'Lignes de champ B [2D axis]' ;
  207. bin = CHAN 'CHPO' moind chbind 'SUPP' ;
  208. vb = @VECOUL bin (MOTS 'BR' 'BZ') 1.E-2 ;
  209. TRAC vb ind 'TITR' 'Champ B dans les inducteurs [2D axis]' ;
  210. OPTI 'PALE' (PALE 'JET') ;
  211. fln = CHAN 'CHPO' moind fl 'SUPP' ;
  212. vfl = @VECOUL fln 3.E-10 ;
  213. TRAC vfl cind 'TITR' 'Forces de Laplace dans les inducteurs [2D axis]' ;
  214. TRAC sig moind def 'TITR' 'Contraintes (sur geometrie deformee) [2D axis]' ;
  215. FINSI ;
  216.  
  217.  
  218. SAUT 2 'LIGNE' ;
  219.  
  220.  
  221.  
  222. *----------------------- 3 D V O L U M I Q U E ----------------------*
  223.  
  224. ** Options de calcul
  225. OPTI 'DIME' 3 'MODE' 'TRID' ;
  226.  
  227. ** Calcul magnétique (champ d'induction magnétique)
  228. * maillage des points cibles (où calculer le champ d'induction)
  229. OPTI 'ELEM' 'CUB8' 'DENS' 0.25 ;
  230. cib = ((DROI ((-1. * r2) h1 h1) (r2 h1 h1)) TRAN (0. (h2 - h1) 0.))
  231. VOLU 'TRAN' (0. 0. (h2 - h1)) ;
  232. * définition/maillage des inducteurs
  233. OPTI 'ELEM' 'CU20' 'DENS' 0.15;
  234. ni = DIME lj ;
  235. ind = VIDE 'MAILLAGE' ;
  236. tind = TABL ;
  237. moind = VIDE 'MMODEL' ;
  238. chbind = VIDE 'MCHAML' ;
  239. chjind = VIDE 'MCHAML' ;
  240. chb = VIDE 'CHPOINT' ;
  241. REPE bi ni ;
  242. * densité de courant dans l'inducteur &bi
  243. j1 = EXTR lj &bi ;
  244. * coordonnées de l'inducteur &bi
  245. a1 = EXTR la1 &bi ;
  246. a2 = EXTR la2 &bi ;
  247. b1 = EXTR lb1 &bi ;
  248. b2 = EXTR lb2 &bi ;
  249. bmoy = 0.5 * (b1 + b2) ;
  250. btot = b2 - b1 ;
  251. * maillage de l'inducteur &bi
  252. pi1 = a1 b1 0. ;
  253. pi2 = a2 b1 0. ;
  254. pi3 = a1 b2 0. ;
  255. pi4 = a2 b2 0. ;
  256. ind1 = REGL (DROI pi1 pi2) (DROI pi3 pi4) ;
  257. ind1 = ind1 VOLU 60 'ROTA' 360. (0. 0. 0.) (0. 1. 0.) ;
  258. ELIM ind1 1.E-10 ;
  259. ind = ind ET ind1 ;
  260. tind . &bi = ind1 ;
  261. * modèle pour l'inducteur &bi
  262. moi1 = MODE ind1 'MECANIQUE' 'ELASTIQUE' 'ORTHOTROPE' ;
  263. moind = moind ET moi1 ;
  264. * calcul du champ d'induction magnétique dans le maillage de l'inducteur &bi
  265. * (utile pour le calcul mécanique qui suit)
  266. bind = BIOT 'INDU' moi1 'STRESSES' 'CERC' (0. bmoy 0.) (1. bmoy 0.) (0. bmoy 1.) a1 a2 btot j1 mu ;
  267. * calcul du champ d'induction magnétique aux points cibles
  268. * (contribution de l'inducteur &bi)
  269. bcib = BIOT 'INDU' cib 'CERC' (0. bmoy 0.) (1. bmoy 0.) (0. bmoy 1.) a1 a2 btot j1 mu ;
  270. * champ de densité de courant dans l'inducteur &bi
  271. x1 y1 z1 = COOR bind ;
  272. th1 = ATG z1 x1 ;
  273. chji = j1 * ((NOMC 'JX' (-1. * (SIN th1))) ET
  274. (NOMC 'JY' (0. * th1)) ET
  275. (NOMC 'JZ' (COS th1))) ;
  276. * assemblage des champs
  277. chb = chb + bcib ;
  278. chbind = chbind + bind ;
  279. chjind = chjind + chji ;
  280. FIN bi ;
  281. aind = ARET ind ;
  282.  
  283. ** Calcul mécanique (déplacements/contraintes dans les inducteurs)
  284. ind1 = tind . 1 ;
  285. ind2 = tind . 2 ;
  286. ind3 = tind . 3 ;
  287. * modèle élastique orthotrope (1,2,3) <--> (z,r,t)
  288. maind = MATE moind 'YG1 ' 45.762E9 'YG2 ' 60.781E9 'YG3 ' 112.08E9
  289. 'NU12' 0.23988 'NU13' 0.14228 'NU23' 0.19574
  290. 'G12 ' 43.857E9 'G13 ' 38.833E9 'G23 ' 36.493E9
  291. 'RADIAL' (0. 0. 0.) (0. 1. 0.) ;
  292. * matrice de rigidité
  293. ri = RIGI moind maind ;
  294. * blocages
  295. px = ind POIN 'PLAN' (0. 0. 0.) (0. 1. 0.) (0. 0. 1.) ;
  296. blx = BLOQ 'UX' px ;
  297. py = (ind1 POIN 'PLAN' (0. 0. 0.) (1. 0. 0.) (0. 0. 1.)) ET
  298. (ind2 POIN 'PLAN' (0. zsup2 0.) (1. zsup2 0.) (0. zsup2 1.)) ET
  299. (ind3 POIN 'PLAN' (0. zinf3 0.) (1. zinf3 0.) (0. zinf3 1.)) ;
  300. bly = BLOQ 'UY' py ;
  301. pz = ind POIN 'PLAN' (0. 0. 0.) (1. 0. 0.) (0. 1. 0.) ;
  302. blz = BLOQ 'UZ' pz ;
  303. * forces de Laplace (= j ^ B)
  304. fl = (((EXCO 'JY' chjind 'FX') * (EXCO 'BZ' chbind 'FX')) - ((EXCO 'JZ' chjind 'FX') * (EXCO 'BY' chbind 'FX'))) ET
  305. (((EXCO 'JZ' chjind 'FY') * (EXCO 'BX' chbind 'FY')) - ((EXCO 'JX' chjind 'FY') * (EXCO 'BZ' chbind 'FY'))) ET
  306. (((EXCO 'JX' chjind 'FZ') * (EXCO 'BY' chbind 'FZ')) - ((EXCO 'JY' chjind 'FZ') * (EXCO 'BX' chbind 'FZ'))) ;
  307. feq = CNEQ moind fl ;
  308. * champ de déplacements des bobines
  309. u = RESO (ri ET blx ET bly ET blz) feq ;
  310. * déformée et contraintes
  311. def = DEFO u ind 200. ;
  312. sig = SIGM moind maind u ;
  313.  
  314. ** Vérification des résultats
  315. MESS '----------------------------------------------' ;
  316. MESS '| Calcul 3D |' ;
  317. MESS '----------------------------------------------' ;
  318. * test du champ d'induction calculé au centre de l'aimant
  319. ptest1 = cib POIN 'PROC' (0. 0. 0.) ;
  320. MESS ' Comp. | Valeur calculee | Valeur attendue' ;
  321. MESS ' -------+-----------------+----------------' ;
  322. bxt = EXTR chb 'BX' ptest1 ;
  323. byt = EXTR chb 'BY' ptest1 ;
  324. bzt = EXTR chb 'BZ' ptest1 ;
  325. MESS ' Bx |' bxt ' | 0.' ;
  326. MESS ' By |' byt ' | 11.7' ;
  327. MESS ' Bz |' bzt ' | 0.' ;
  328. * test du champ de déplacement au rayon interne de l'aimant
  329. ptest2 = ind POIN 'PROC' (rint1 0. 0.) ;
  330. uxt = EXTR u 'UX' ptest2 ;
  331. uyt = EXTR u 'UY' ptest2 ;
  332. uzt = EXTR u 'UZ' ptest2 ;
  333. MESS ' Ux |' uxt ' | 7.75E-4' ;
  334. MESS ' Uy |' uyt ' | 0.' ;
  335. MESS ' Uz |' uzt ' | 0.' ;
  336. * erreur si trop d'écart aux valeurs attendues
  337. * on doit trouver By = 11,7 T au centre
  338. * et Ux = 7.75E-4 m au rayon interne
  339. err1 = MAXI 'ABS' bxt ((byt - 11.7) / 11.7) bzt ;
  340. SI (err1 > 1.E-3) ;
  341. ERRE 'Erreur de calcul du champ d''induction B' ;
  342. FINSI ;
  343. err2 = MAXI 'ABS' ((uxt - 7.75E-4) / 7.75E-4) uyt uzt ;
  344. SI (err2 > 1.5E-2) ;
  345. ERRE 'Erreur de calcul du champ de deplacements' ;
  346. FINSI ;
  347.  
  348. ** Quelques tracés
  349. SI itrac ;
  350. pt1 = (0. zinf1 0.) ET (0. zsup1 0.) ;
  351. OPTI 'PALE' (PALE 'PLAS') ;
  352. TRAC blig (lig ET pt1) 'TITR' 'Lignes de champ B [3D]' (PROG 1. 'PAS' 1. 12.) ;
  353. OPTI 'PALE' (PALE 'JET') ;
  354. TRAC (sig / 1.E6) (PROG 30. 'PAS' 10. 180.) 'COUP' (0. 0. 0.) (0. 0. 1.) (0. 1. 0.)
  355. moind def 'TITR' 'Contraintes (sur geometrie deformee) [3D]' ;
  356. FINSI ;
  357.  
  358. FIN ;
  359.  
  360.  
  361.  
  362.  
  363.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales