Télécharger metallurgie_11.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : metallurgie_11.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4.  
  5. *__________________________________________________________________*
  6. * TEST METALLURGIE_11 *
  7. * *
  8. * CALCUL DES PROPORTIONS DE PHASE METALLURGIQUE *
  9. * *
  10. * Un MODELE thermo-metallurgique est cree et un diagramme TRC *
  11. * correspondant est cree *
  12. * *
  13. * Le modele metallurgique est code en ESOPE (Cast3m) *
  14. * *
  15. *__________________________________________________________________*
  16. * *
  17. * On trace le diagramme TRC *
  18. *__________________________________________________________________*
  19. *
  20. 'OPTI' 'TRAC' PSC 'EPTR' 10 ;
  21.  
  22. ************************************************************************
  23. * Pour faire des beaux DESSINS
  24. ************************************************************************
  25. * LISTMOTS contenant les couleurs
  26. LESCOUL = 'MOTS' 'VIOL' 'VERT' 'CYAN' 'BRIQ' 'BOUT' 'JAUN' 'OLIV'
  27. 'ORAN' 'ROUG' 'BLEU' 'BRUN' 'CARA' 'GRIS' 'NOIR' ;
  28. NBCOUL = 'DIME' LESCOUL;
  29. ************************************************************************
  30.  
  31. OPTI DIME 2 ELEM 'TRI3';
  32.  
  33. P1 = 0. 0. ;
  34. P2 = 1. 0. ;
  35. P3 = 0. 1. ;
  36.  
  37. MAILT = MANU 'TRI3' P1 P2 P3;
  38.  
  39. LISTPHA = MOTS 'AUST' 'MART' 'BAIN' 'FERR' 'MB ' ;
  40. LISTREAC = MOTS 'MB ' 'MART' 'BAIN' 'FERR' 'AUST' 'AUST' 'AUST' ;
  41. LISTPROD = MOTS 'AUST' 'AUST' 'AUST' 'AUST' 'MART' 'BAIN' 'FERR' ;
  42. LISTTYPE = MOTS 'LEBL' 'LEBL' 'LEBL' 'LEBL' 'KOIS' 'LEBL' 'LEBL' ;
  43. NOMCONS = '16MND5';
  44.  
  45. MODCP1 = MODE MAILT 'METALLURGIE' 'PHASES' LISTPHA
  46. 'REACTIFS' LISTREAC
  47. 'PRODUITS' LISTPROD
  48. 'TYPE' LISTTYPE
  49. 'CONS' NOMCONS ;
  50.  
  51. TINI = 900. ;
  52. TFIN = 20. ;
  53.  
  54.  
  55. *1ere transformation :
  56. PEQ1 = EVOL 'MANU' 'T' (PROG 716. 802. )
  57. 'PEQ' (PROG 0. 1. );
  58. F1 = EVOL 'MANU' 'TPOI'(PROG -1.D-6 0. )
  59. 'F' (PROG 0. 1. );
  60. TAU1 = EVOL 'MANU' 'T' (PROG 716. 802. )
  61. 'TAU' (PROG 12. 0.5 );
  62.  
  63. *2eme transformation : parametres identiques a la premiere
  64.  
  65. *3eme transformation : parametres identiques a la premiere
  66.  
  67. *4eme transformation : parametres identiques a la premiere
  68.  
  69. *5eme transformation
  70. MS5 = 380. ;
  71. KM5 = 0.0247 ;
  72.  
  73. *6eme transformation
  74. PEQ6 = EVOL 'MANU' 'T' (PROG 375 380 405 600 )
  75. 'PEQ' (PROG 0. 1. 1. 0. );
  76.  
  77. F6 = 'EVOL' 'MANU' 'TPOI' (PROG -100. -80. -60. -50. -40. -30. -25. -20. -18. -15. -12. -10. -9. -5. -1. -0.05 0.D0 1.D-6)
  78. 'F' (PROG 0.005 1.573 2.857 3.417 3.982 4.583 4.833 5.26 5.472 6.033 7.675 11.4 18.45 17.1 0.328 0.00238 0.00238 0.) ;
  79.  
  80. TAU6 = EVOL 'MANU' 'T' (PROG 375 380)
  81. 'TAU' (PROG 1.D6 20 );
  82.  
  83. *7eme transformation
  84. PEQ7 = 'EVOL' 'MANU' 'T' (PROG 625 630 730 735 )
  85. 'PEQ' (PROG 0 1 1 0 );
  86.  
  87. F7 = 'EVOL' 'MANU' 'TPOI' (PROG -8.5 -6.2 -4.7 0. 1.D-6)
  88. 'F' (PROG 0.001 0.13 1.5 1.5 0. );
  89.  
  90. TAU7 = EVOL 'MANU' 'T' (PROG 625 630 )
  91. 'TAU' (PROG 1.D6 5 );
  92.  
  93.  
  94. *Calcul automatique de la liste des vitesses de refroidissement
  95. NBVI = 30. ;
  96. VIT1 = 250. ;
  97. VIT2 = 2. ;
  98. VLOG1 = 'LOG' VIT1;
  99. VLOG2 = 'LOG' VIT2;
  100.  
  101. PASLOG = (VLOG2 - VLOG1) / (NBVI - 1);
  102. LRELOG ='PROG' VLOG1 'PAS' PASLOG VLOG2;
  103. LISTREF='EXP' LRELOG;
  104.  
  105. Seuil = 0.005 ;
  106.  
  107.  
  108. ALPHA = 1. ;
  109.  
  110.  
  111. NBPHA = 'DIME' LISTPHA ;
  112. *initialisation des TABLES :
  113. EVO_TAB = 'TABL' ;
  114. TSEUIL = 'TABL' ;
  115. EVOT_TAB = 'TABL' ;
  116. PROP = 'TABL' ;
  117. TRC = 'VIDE' 'EVOLUTIO' ;
  118. REPE BOU_INI NBPHA ;
  119.  
  120. indexINI = &BOU_INI;
  121. EVO_TAB . indexINI = 'TABL' ;
  122. TSEUIL . indexINI = 'TABL' ;
  123. TSEUIL . indexINI . 'tpsS1' = 'PROG' ;
  124. TSEUIL . indexINI . 'tpsS2' = 'PROG' ;
  125. TSEUIL . indexINI . 'TS1' = 'PROG' ;
  126. TSEUIL . indexINI . 'TS2' = 'PROG' ;
  127.  
  128. FIN BOU_INI ;
  129.  
  130.  
  131. REPE BOU_VIT (DIME LISTREF) ;
  132.  
  133. vit = &BOU_VIT;
  134.  
  135. * Declaration de la vitesse de refroidissement : en Degres/s
  136. DT_vit = -1 * ( 'EXTR' LISTREF vit ) ;
  137.  
  138. * F2 et F3 dependent de la vitesse :
  139. F1L = 'IPOL' DT_vit F1 ;
  140. F6L = 'IPOL' DT_vit F6 ;
  141. F7L = 'IPOL' DT_vit F7 ;
  142.  
  143. * Calcul de la duree du refroidissement :
  144. DUREE = -1. * (TINI - TFIN) / DT_vit ;
  145.  
  146. * Declaration du Temps initial :
  147. TEMPINI = 1. ;
  148. * Calcul du Temps final :
  149. TEMPFIN = TEMPINI + DUREE ;
  150. * Calcul du pas de temps en fonction de la vitesse de refroidissement :
  151. DTPS = -10. / DT_vit ;
  152.  
  153. LTCAL ='PROG' TEMPINI 'PAS' DTPS TEMPFIN ;
  154. T = TINI + (DT_vit * (LTCAL - TEMPINI));
  155.  
  156. * Initialisation de CHE1 : prop de phases initiales :
  157. PROP . 'AUST' = 'PROG' ALPHA ;
  158. PROP . 'MART' = 'PROG' 0. ;
  159. PROP . 'BAIN' = 'PROG' 0. ;
  160. PROP . 'FERR' = 'PROG' 0. ;
  161. PROP . 'MB ' = 'PROG' 0. ;
  162. CTYP = 'CHAI' 'VARIABLES_INTERNES' ;
  163. CHE1 ='MANU' 'CHML' MODCP1 'AUST' ('EXTR' (PROP . 'AUST') 1)
  164. 'MART' ('EXTR' (PROP . 'MART') 1)
  165. 'BAIN' ('EXTR' (PROP . 'BAIN') 1)
  166. 'FERR' ('EXTR' (PROP . 'FERR') 1)
  167. 'MB ' ('EXTR' (PROP . 'MB ') 1)
  168. 'TYPE' CTYP 'NOEUD' ;
  169.  
  170.  
  171. nbpas = (DIME LTCAL) - 1;
  172. REPE CTEMP nbpas;
  173.  
  174. * On recupere le temps debut de pas et le temps fin de pas :
  175. temp0 = EXTR LTCAL &CTEMP ;
  176. temp1 = EXTR LTCAL (&CTEMP + 1);
  177. CHETPS0 = 'MANU' 'CHML' MAILT 'TEMP' temp0 ;
  178. CHETPS1 = 'MANU' 'CHML' MAILT 'TEMP' temp1 ;
  179. * On calcule la temperature debut de pas et la temperature fin de pas :
  180. T0 = EXTR T &CTEMP ;
  181. T1 = EXTR T (&CTEMP + 1) ;
  182. CHT0 = 'MANU' 'CHML' MAILT 'T' T0 ;
  183. CHT1 = 'MANU' 'CHML' MAILT 'T' T1 ;
  184.  
  185. * On determine les differents parametres materiaux :
  186. PEQ11L = 'IPOL' T0 PEQ1 ;
  187. PEQ12L = 'IPOL' T1 PEQ1 ;
  188.  
  189. PEQ61L = 'IPOL' T0 PEQ6 ;
  190. PEQ62L = 'IPOL' T1 PEQ6 ;
  191.  
  192. PEQ71L = 'IPOL' T0 PEQ7 ;
  193. PEQ72L = 'IPOL' T1 PEQ7 ;
  194.  
  195. TAU11L = 'IPOL' T0 TAU1 ;
  196. TAU12L = 'IPOL' T1 TAU1 ;
  197.  
  198. TAU61L = 'IPOL' T0 TAU6 ;
  199. TAU62L = 'IPOL' T1 TAU6 ;
  200.  
  201. TAU71L = 'IPOL' T0 TAU7 ;
  202. TAU72L = 'IPOL' T1 TAU7 ;
  203.  
  204. * On definit le Materiaux debut de pas et le materiaux fin de pas :
  205. MATCP1 = 'MATE' MODCP1 'PEQ1' PEQ11L 'TAU1' TAU11L 'F1' F1L
  206. 'PEQ2' PEQ11L 'TAU2' TAU11L 'F2' F1L
  207. 'PEQ3' PEQ11L 'TAU3' TAU11L 'F3' F1L
  208. 'PEQ4' PEQ11L 'TAU4' TAU11L 'F4' F1L
  209. 'MS5' MS5 'KM5' KM5
  210. 'PEQ6' PEQ61L 'TAU6' TAU61L 'F6' F6L
  211. 'PEQ7' PEQ71L 'TAU7' TAU71L 'F7' F7L;
  212.  
  213. MATCP2 = 'MATE' MODCP1 'PEQ1' PEQ12L 'TAU1' TAU12L 'F1' F1L
  214. 'PEQ2' PEQ12L 'TAU2' TAU12L 'F2' F1L
  215. 'PEQ3' PEQ12L 'TAU3' TAU12L 'F3' F1L
  216. 'PEQ4' PEQ12L 'TAU4' TAU12L 'F4' F1L
  217. 'MS5' MS5 'KM5' KM5
  218. 'PEQ6' PEQ62L 'TAU6' TAU62L 'F6' F6L
  219. 'PEQ7' PEQ72L 'TAU7' TAU72L 'F7' F7L;
  220.  
  221. CHE1 = COMP MODCP1 (CHE1 'ET' CHETPS0 'ET' CHT0 'ET' MATCP1 ) ( CHETPS1 'ET' CHT1 'ET' MATCP2 ) ;
  222.  
  223. * Extraction pour tracer :
  224. Pi ='EXCO' CHE1 AUST 'AUST';
  225. PiEvol = 'EXTR' Pi AUST 1 1 1;
  226. PROP . 'AUST' = PROP . 'AUST' 'ET' PiEvol ;
  227.  
  228. Pi ='EXCO' CHE1 MART 'MART';
  229. PiEvol = 'EXTR' Pi MART 1 1 1;
  230. PROP . 'MART' = PROP . 'MART' 'ET' PiEvol ;
  231.  
  232. Pi ='EXCO' CHE1 BAIN 'BAIN';
  233. PiEvol = 'EXTR' Pi BAIN 1 1 1;
  234. PROP . 'BAIN' = PROP . 'BAIN' 'ET' PiEvol ;
  235.  
  236. Pi ='EXCO' CHE1 FERR 'FERR';
  237. PiEvol = 'EXTR' Pi FERR 1 1 1;
  238. PROP . 'FERR' = PROP . 'FERR' 'ET' PiEvol ;
  239.  
  240. Pi ='EXCO' CHE1 MB 'MB ';
  241. PiEvol = 'EXTR' Pi MB 1 1 1;
  242. PROP . 'MB ' = PROP . 'MB ' 'ET' PiEvol ;
  243.  
  244. FIN CTEMP;
  245.  
  246. EVO_TAB . 1 . vit = 'EVOL' 'BOUT' 'MANU' 'TEMP' LTCAL 'PROP' PROP . 'AUST';
  247. EVO_TAB . 2 . vit = 'EVOL' 'VERT' 'MANU' 'TEMP' LTCAL 'PROP' PROP . 'MART';
  248. EVO_TAB . 3 . vit = 'EVOL' 'CYAN' 'MANU' 'TEMP' LTCAL 'PROP' PROP . 'BAIN';
  249. EVO_TAB . 4 . vit = 'EVOL' 'BRIQ' 'MANU' 'TEMP' LTCAL 'PROP' PROP . 'FERR';
  250. EVO_TAB . 5 . vit = 'EVOL' 'VIOL' 'MANU' 'TEMP' LTCAL 'PROP' PROP . 'MB ';
  251.  
  252. EVOT = 'EVOL' 'BLEU' 'MANU' 'TEMP' LTCAL 'T' T;
  253. EVOT_TAB . vit = EVOT ;
  254.  
  255. LTCAL = LTCAL '+' ('VALEUR' 'PREC') ;
  256. TRC = TRC 'ET' ('EVOL' 'NOIR' 'MANU' 'TEMP' LTCAL 'T' T) ;
  257.  
  258. FIN BOU_VIT ;
  259.  
  260.  
  261.  
  262. *PostTraitement :
  263. REPE BOU_VIT (DIME LISTREF) ;
  264.  
  265. vit = &BOU_VIT ;
  266. DT_vit = -1 * ( 'EXTR' LISTREF vit ) ;
  267.  
  268. EVO = 'VIDE' 'EVOLUTIO' ;
  269. REPE BOU_PHA NBPHA ;
  270. indexPHA = &BOU_PHA;
  271. EVO = EVO 'ET' (EVO_TAB . indexPHA . vit) ;
  272. FIN BOU_PHA ;
  273. TL = TABL ;
  274. TL . 1 = 'MARQ ETOI REGU' ;
  275. TL . 2 = 'MARQ PLUS REGU' ;
  276. TL . 3 = 'MARQ MOIN REGU' ;
  277. TL . 4 = 'MARQ BARR REGU' ;
  278. TL . 5 = 'MARQ CROI REGU' ;
  279. TL . 'TITRE' = TABL ;
  280. TL . 'TITRE' . 1 = '1-Metal de base' ;
  281. TL . 'TITRE' . 2 = '2-Martensite' ;
  282. TL . 'TITRE' . 3 = '3-Bainite' ;
  283. TL . 'TITRE' . 4 = '4-Ferrite' ;
  284. TL . 'TITRE' . 5 = '5-Austenite' ;
  285. TITRE = 'CHAI' 'Vitesse : ' ( 'ENTI' 'PROC' DT_vit ) ' Deg.s-1' ;
  286. DESS EVO 'GRIL' 'TIRC' 'GRIS' 'LEGE' TL 'TITR' TITRE ;
  287.  
  288. EVOT = EVOT_TAB . vit ;
  289.  
  290. REPE BOUP 4 ;
  291.  
  292. NumPROP = &BOUP + 1 ;
  293.  
  294. EVO = EVO_TAB . NumPROP . vit ;
  295.  
  296. * Traitement de EVO
  297. Seuil1 = 5.D-3 ;
  298. TEMPS = 'EXTR' EVO 'ABSC' 1;
  299. PROP = 'EXTR' EVO 'ORDO' 1;
  300. T = 'EXTR' EVOT 'ORDO' 1;
  301. Seuil2 = ( 'MAXI' PROP) - (Seuil1 * 4.D0) ;
  302.  
  303. SI (('MAXI' PROP) '>' Seuil1);
  304.  
  305. * tpsS1 : temps debut apparition de PROP
  306. tpsS1 ='IPOL' Seuil1 ('ORDO' PROP 'CROI') TEMPS ;
  307. * TS1 : T°C debut apparition de PROP
  308. TS1 ='IPOL' tpsS1 TEMPS T ;
  309.  
  310. SI (TS1 '>' TFIN);
  311.  
  312. * tpsS2 : temps fin apparition de PROP
  313. tpsS2='IPOL' Seuil2 ('ORDO' PROP 'CROI') TEMPS ;
  314. * TS2 : T°C fin apparition de PROP
  315. TS2 ='IPOL' tpsS2 TEMPS T ;
  316.  
  317. SI (TS2 '<' TS1);
  318. TSEUIL . NumPROP . 'tpsS1' = TSEUIL . NumPROP . 'tpsS1' 'ET' tpsS1 ;
  319. TSEUIL . NumPROP . 'TS1' = TSEUIL . NumPROP . 'TS1' 'ET' TS1 ;
  320.  
  321. TSEUIL . NumPROP . 'tpsS2' = TSEUIL . NumPROP . 'tpsS2' 'ET' tpsS2 ;
  322. TSEUIL . NumPROP . 'TS2' = TSEUIL . NumPROP . 'TS2' 'ET' TS2 ;
  323.  
  324. FINS ;
  325.  
  326. FINS ;
  327.  
  328. FINS ;
  329.  
  330. FIN BOUP ;
  331.  
  332.  
  333. FIN BOU_VIT ;
  334.  
  335.  
  336. *On trace le diagramme TRC avec les courbes de vitesse
  337. EVO = 'VIDE' 'EVOLUTIO' ;
  338. REPE BOUP 3 ;
  339. NumPROP = &BOUP + 1 ;
  340. COULEUR = 'EXTR' LESCOUL NumPROP ;
  341. EVO = EVO 'ET' ( 'EVOL' COULEUR 'MANU' 'TEMP' (TSEUIL . NumPROP . 'tpsS1') 'T' (TSEUIL . NumPROP . 'TS1') )
  342. 'ET' ( 'EVOL' COULEUR 'MANU' 'TEMP' (TSEUIL . NumPROP . 'tpsS2') 'T' (TSEUIL . NumPROP . 'TS2') ) ;
  343. FIN BOUP ;
  344.  
  345. TL = TABL ;
  346. TL . 'TITRE' = TABL ;
  347. REPE BOU_VIT (DIME LISTREF) ;
  348. vit = &BOU_VIT ;
  349. DT_vit = -1 * ( 'EXTR' LISTREF vit ) ;
  350. TL . 'TITRE' . vit = 'CHAI' ('ENTI' 'PROC' DT_vit) 'C/s' ;
  351. TL . vit = 'TIRR' ;
  352. FIN BOU_VIT ;
  353.  
  354. TITRE = 'CHAI' 'Diagramme TRC' ;
  355. DESS ( TRC 'ET' EVO ) 'LOGX' 'XBOR' 1. 1E3
  356. 'GRIL' 'TIRC' 'GRIS'
  357. 'LEGE' TL
  358. 'TITR' TITRE ;
  359.  
  360. *On trace le diagramme TRC avec les courbes debut/fin d'apparition des proportions de phases
  361. TL = TABL ;
  362. TL . 'TITRE' = TABL ;
  363. TL . 'TITRE' . 1 = 'MART debut' ;
  364. TL . 'TITRE' . 2 = 'MART fin' ;
  365. TL . 'TITRE' . 3 = 'BAIN debut' ;
  366. TL . 'TITRE' . 4 = 'BAIN fin' ;
  367. TL . 'TITRE' . 5 = 'FERR debut' ;
  368. TL . 'TITRE' . 6 = 'FERR fin' ;
  369. TITRE = 'CHAI' 'Diagramme TRC' ;
  370. DESS EVO 'LOGX' 'XBOR' 1. 1E2
  371. 'GRIL' 'TIRC' 'GRIS'
  372. 'LEGE' TL
  373. 'TITR' TITRE ;
  374.  
  375.  
  376.  
  377. fin;
  378.  
  379.  
  380.  

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