Télécharger biot_iseult.dgibi

Retour à la liste

Numérotation des lignes :

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

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