Télécharger soudage4.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : soudage4.dgibi
  2. * section : thermique conduction convection
  3. *----------------------------------------------------------------------*
  4. * S O U D A G E 4 . D G I B I *
  5. *----------------------------------------------------------------------*
  6. * Objet :
  7. * -------
  8. *
  9. * Exemple d'utilisation d'un modele de SOURCE THERMIQUE GAUSSIENNE
  10. * pour la simulation d'une ligne de fusion en soudage sur une plaque
  11. * en acier 316L (proprietes approchees).
  12. *
  13. * Le resultat est compare au meme calcul realise en utilisant
  14. * l'operateur SOURCE et en faisant appel aux procedures utilsateur de
  15. * PASAPAS pour representer l'avancement de la torche.
  16. *
  17. * Le jeu de donnees se decompose ainsi en 2 parties :
  18. * - une 1ere partie "exemple"
  19. * - une 2nd partie "validation"
  20. *
  21. * Description :
  22. * -------------
  23. *
  24. * Type de calcul : Thermique Transitoire
  25. * Mode de calcul : 3D
  26. * Type d'element : CUB8
  27. * Chargement : Source de chaleur, Convection
  28. * Reference : Comparaison des resultats de 2 mises en donnees
  29. * differentes
  30. * Objectif : Ecart relatif < 1.e-12 car meme calcul mais mise en
  31. * donnees differente.
  32. *
  33. *----------------------------------------------------------------------*
  34. *
  35. * Mettre ig1 a VRAI pour visualiser le calcul :
  36. ig1 = faux ;
  37. *opti trac psc ;
  38.  
  39. * Mettre icomplet a VRAI pour le calcul complet :
  40. icomplet = faux ;
  41.  
  42. * Racine du nom du fichier (pour nom fichier sauvegarde et animation) :
  43. fic1 = 'soudage4' ;
  44.  
  45. *----------------------------------------------------------------------*
  46. * 1ere PARTIE *
  47. * *
  48. * E X E M P L E *
  49. * *
  50. * *
  51. *----------------------------------------------------------------------*
  52. *
  53. *---------------------------- Parametres -----------------------------*
  54. *
  55. * Geometrie : longueur, largeur, epaisseur
  56. lo1 = 100.e-3 ;
  57. la1 = 50.e-3 ;
  58. ep1 = 10.e-3 ;
  59.  
  60. * Densite maillage :
  61. de1 = 2.5e-3 ;
  62.  
  63. *---- Parametres physiques :
  64. * rho1 : masse volumique (kg/m3)
  65. * cp1 : capacite calorifique (J/kg/K)
  66. * k1 : conductivite thermique (W/m/K)
  67. * h1 : coefficient d'echange convectif (W/m2/K)
  68. rho1 = 7760. ;
  69. cp1 = 500. ;
  70. k1 = 24. ;
  71. h1 = 20. ;
  72.  
  73. *---- Parametres du chargement :
  74. * Soudage :
  75. * vs1 : vitesse de soudage (m/s)
  76. * tis1 : instant debut deplacement de la torche (s)
  77. vs1 = 80.e-3 / 60. ;
  78. tis1 = 0. ;
  79.  
  80. * Source de chaleur Gaussienne :
  81. * q0 : puissance thermique totale (W)
  82. * r0 : rayon source Gaussienne (m)
  83. * z0 : profondeur source Gaussienne (m)
  84. q0 = 1.5e3 ;
  85. r0 = 6.e-3 ;
  86. z0 = 3.e-3 ;
  87. *
  88. * Conditions iniiale & aux limites
  89. * tini0 : temperature initiale
  90. * te0 : temperature exterieure de convection
  91. tini0 = 20. ;
  92. te0 = 20. ;
  93.  
  94. *------------------------------ Maillage ------------------------------*
  95. opti dime 3 elem cub8 isov suli ;
  96.  
  97. * Repere :
  98. O1 = 0 0 0 ;
  99. X1 = 1 0 0 ;
  100. Y1 = 0 1 0 ;
  101. Z1 = 0 0 1 ;
  102.  
  103. * Maillage de la plaque :
  104. P1 = la1 * y1 ;
  105. l1 = O1 droi P1 dini de1 dfin de1 ;
  106. s1 = l1 tran (ep1 * z1) dini de1 dfin de1 ;
  107. v1 = s1 volu tran (lo1 * x1) dini de1 dfin de1 ;
  108.  
  109. * Surface de convection :
  110. scv1 = enve v1 ;
  111.  
  112. si ig1 ;
  113. trac cach v1 titre ' Maillage de la plaque ' ;
  114. trac cach scv1 titre ' Surface echange convectif = enveloppe maillage ' ;
  115. fins ;
  116.  
  117. *------------------------ CI - CL / Chargement -----------------------*
  118.  
  119. ***** Definition du chargement thermique de la torche *****
  120. * Ligne de fusion :
  121. ps1 = 3.e-3 0.e-3 ep1 ;
  122. ps2 = (lo1 - 5.e-3) (la1 - 2.e-3) ep1 ;
  123. ls1 = ps1 droi 1 ps2 ;
  124. ls1 = ls1 coul roug ;
  125. chs1 = ls1 coor curv ;
  126. si ig1 ;
  127. trac cach (v1 et ls1) titre 'Maillage de la ligne de fusion' ;
  128. trac chs1 ls1 titre 'Abscisse curiviligne de la ligne de fusion' ;
  129. fins ;
  130.  
  131. * Evolution temporelle de la position de la torche TIG (m/s) :
  132. * tfs1 : instant fin de deplacement de la torche (s)
  133. lls1 = maxi chs1 ;
  134. tfs1 = ((mesu ls1) / vs1) + tis1 ;
  135. lts1 = prog 0. tis1 tfs1 ;
  136. lxs1 = prog 0. 0. lls1 ;
  137. evs1 = evol vert manu temp lts1 lxs1 ;
  138. si ig1 ;
  139. dess evs1 xbor 0. tfs1
  140. titre ' Evolution temporelle du deplacement de la torche (abscisse curviligne)' ;
  141. fins ;
  142.  
  143. * Chargement decrivant le trajet de la source :
  144. cg2 = char traj chs1 evs1 ;
  145.  
  146. * Evolution temporelle de la puissance de la torche :
  147. lq1 = prog 1. 1. 1. ;
  148. evq1 = evol roug manu temp lts1 qtot lq1 ;
  149. evq1 = q0 * evq1 ;
  150. si ig1 ;
  151. dess evq1 xbor 0. tfs1
  152. titre ' Evolution temporelle de la puissance thermique de la torche (W) ' ;
  153. fins ;
  154.  
  155. *--------------------- Modele / Caracteristiques ----------------------*
  156.  
  157. * Conduction :
  158. mo1 = mode v1 thermique ;
  159. ma1 = mate mo1 k k1 rho rho1 'C' cp1 'TINI' tini0 ;
  160.  
  161. * Convection :
  162. mocv1 = mode scv1 thermique convection ;
  163. macv1 = mate mocv1 'H' h1 'TE' te0 ;
  164.  
  165. * Source Gaussienne isotrope_transverse :
  166. moq1 = mode v1 thermique source gaussienne isotrope_transverse ;
  167. maq1 = mate moq1 qtot evq1 orig cg2 rgau r0 dire (0 0 1) zgau z0 ;
  168.  
  169. *------------------------- Resolution PASAPAS -------------------------*
  170. * Instants de calcul :
  171. * pas1 : pas de temps pour avancer d'un 1/2 element
  172. pas1 = 0.5 * de1 / vs1 ;
  173. ltca1 = prog 0. pas (0.2*pas1) (2.*pas1) pas pas1 (0.2*tfs1) ;
  174. si icomplet ;
  175. ltca1 = prog 0. pas (0.2*pas1) (2.*pas1) pas pas1 tfs1 ;
  176. fins ;
  177.  
  178. * Table PASAPAS :
  179. ta1 = table ;
  180. ta1 . modele = mo1 et mocv1 et moq1 ;
  181. ta1 . caracteristiques = ma1 et macv1 et maq1 ;
  182. ta1 . temps_calcules = ltca1 ;
  183.  
  184. * Affichages en cours de calcul avec PERSO2 :
  185. ta1 . procedure_perso2 = vrai ;
  186. debp PERSO2 tu1*table ;
  187. tps1 = tu1.estimation.temps ;
  188. liso1 = prog 0. pas 150. 1800. ;
  189. titre (chai format '(F7.2)' 'Temperature au temps ' tps1 ' (s)') ;
  190. si ig1 ;
  191. trac liso1 nclk tu1.wtable.ther_courant v1 (aret v1) ;
  192. fins ;
  193. finp ;
  194.  
  195. si (ega (vale trac) 'PSC') ;
  196. opti ftra (chai fic1 '_anim.ps') ;
  197. fins ;
  198.  
  199. pasapas ta1 ;
  200.  
  201. *----------------------------------------------------------------------*
  202. * 2nd PARTIE *
  203. * *
  204. * V A L I D A T I O N *
  205. * *
  206. * *
  207. *----------------------------------------------------------------------*
  208.  
  209. *------------------------ CI - CL / Chargement -----------------------*
  210.  
  211. * Temperature initiale de la plaque :
  212. cht0 = manu chpo V1 1 'T' 20. ;
  213.  
  214. * Temperature exterieure d'exchange convectif et chargement associe :
  215. chte1 = manu chpo scv1 1 'T' 20. ;
  216. ltps1 = prog 0. 1.e6 ;
  217. ev1 = evol manu temp ltps1 (prog 1. 1.) ;
  218. cg1 = char teco chte1 ev1 ;
  219.  
  220. *-------------------- Source de chaleur Gaussienne --------------------*
  221. * PROCEDURE MODSOURC : modelise une source de chaleur Gaussienne
  222. *----------------------------------------------------------------------*
  223. debp modsourc mod1*mmodel pt1*point q1*flottant a1*flottant b1*flottant ig1/logique ;
  224. si (non (exis ig1)) ; ig1 = faux ; fins ;
  225. mail1 = extr mod1 mail ;
  226. chx1 chy1 chz1 = mail1 coor ;
  227. xs1 ys1 zs1 = pt1 coor ;
  228. chx1 = chx1 - xs1 ;
  229. chy1 = chy1 - ys1 ;
  230. chz1 = chz1 - zs1 ;
  231. chx1 chy1 chz1 = (chan cham mo1 chx1 stresses)
  232. (chan cham mo1 chy1 stresses)
  233. (chan cham mo1 chz1 stresses) ;
  234. chq1 = ((chx1 ** 2) + (chy1 ** 2) / a1 / a1) + (chz1 ** 2 / b1 / b1) * -2. ;
  235. qx1 = ((2. ** 5) / (PI ** 3)) ** 0.5 ;
  236. qx1 = q1 * qx1 / a1 / a1 / b1 ;
  237. chq1 = qx1 * (exp chq1) ;
  238. sq1 = sour mo1 chq1 ;
  239. si ig1 ;
  240. trac 12 sq1 mail1 (aret mail1)
  241. titr ' Champ par point des flux nodaux equivalents a l instant initial' ;
  242. fins ;
  243. finp sq1 ;
  244.  
  245. * Chargement associe a la source a l'instant initial (t=0) :
  246. chq1 = modsourc mo1 ps1 q0 r0 z0 ig1 ;
  247. ev1 = evol manu lts1 (prog (dime lts1) * 1.) ;
  248. cg2 = char q chq1 ev1 ;
  249.  
  250. *------------------------------ CHARTHER ------------------------------*
  251. * PROCEDURE CHARTHER : deplacement de la source au cours du temps
  252. *----------------------------------------------------------------------*
  253. debp charther tu1*table tps1*flottant ;
  254. *
  255. mess ' **** Appel a CHARTHER ****' ;
  256. * Passage des donnees "perso" :
  257. lxs1 = tu1.donnees_charther.trj ;
  258. evxs1 = tu1.donnees_charther.evs ;
  259. evxq1 = tu1.donnees_charther.evq ;
  260. rx1 = tu1.donnees_charther.rayo ;
  261. zx1 = tu1.donnees_charther.prof ;
  262. cgx1 = tu1.donnees_charther.char ;
  263.  
  264. * Instant courant et modele :
  265. mox1 = tu1.wtable.mod_cond ;
  266.  
  267. * Calcul de la source :
  268. ps1 = ls1 poin 1 ;
  269. ps2 = ls1 poin 2 ;
  270. lls1 = mesu ls1 ;
  271. xs1 = ipol evxs1 tps1 ;
  272. ps12 = ps2 moin ps1 ;
  273. pxs1 = ps1 plus (xs1 / lls1 * ps12) ;
  274. qx1 = ipol evxq1 tps1 ;
  275. chqxs1 = modsourc mox1 pxs1 qx1 rx1 zx1 ;
  276. tu2 = tabl ;
  277. tu2 . addi_second = chqxs1 ;
  278.  
  279. finp tu2 ;
  280.  
  281. *------------------------- Resolution PASAPAS -------------------------*
  282.  
  283. * Table PASAPAS :
  284. ta2 = table ;
  285. ta2 . modele = mo1 et mocv1 ;
  286. ta2 . caracteristiques = ma1 et macv1 ;
  287. ta2 . chargement = cg1 ;
  288. ta2 . temps_calcules = ltca1 ;
  289.  
  290. * Temperature initiale :
  291. ta2 . temperatures = tabl ;
  292. ta2 . temperatures . 0 = cht0 ;
  293.  
  294. * Traces de controle :
  295. ta2 . procedure_perso2 = vrai ;
  296.  
  297. ta2 . procedure_charther = vrai ;
  298. * Donnees procedure CHARTHER :
  299. ta2 . donnees_charther = table ;
  300. ta2 . donnees_charther . trj = ls1 ;
  301. ta2 . donnees_charther . evs = evs1 ;
  302. ta2 . donnees_charther . evq = evq1 ;
  303. ta2 . donnees_charther . rayo = r0 ;
  304. ta2 . donnees_charther . prof = z0 ;
  305. ta2 . donnees_charther . char = cg1 ;
  306.  
  307. pasapas ta2 ;
  308.  
  309. *----------------------------------------------------------------------*
  310. * Comparaison resultats ta1 & ta2 *
  311. *----------------------------------------------------------------------*
  312. * On ne compare que les champs de temeprature :
  313. tt1 = ta1. temperatures ;
  314. tt2 = ta2. temperatures ;
  315. nb1 = dime tt1 ;
  316. ldT1 = prog ;
  317. Tmax1 = 0. ;
  318. repe b1 nb1 ;
  319. i1 = &b1 - 1 ;
  320. dTi1 = maxi abs (tt1 . i1 - tt2 . i1) ;
  321. ldT1 = ldT1 et (prog dTi1) ;
  322. Tmaxi1 = maxi abs tt1 . i1 ;
  323. si (Tmaxi1 > Tmax1) ; Tmax1 = Tmaxi1 ; fins ;
  324. fin b1 ;
  325. err1 = maxi (ldT1 / Tmax1) ;
  326. *
  327. * Message :
  328. opti echo 0 ;
  329. mess ' ***** Erreur relative entre les deux mises en donnee = ' err1 ;
  330. opti echo 1 ;
  331.  
  332. * test d'erreur :
  333. si (err1 > 1.e-6) ;
  334. erre 5 ;
  335. fins ;
  336. *
  337. fin ;
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  

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