Télécharger TRC.procedur

Retour à la liste

Numérotation des lignes :

  1. * TRC PROCEDUR CB215821 17/07/07 21:15:01 9480
  2. 'DEBP' TRC MODTHE*'MMODEL' MATPHAS*'MCHAML' TPHASE*'TABLE'
  3. TINI*FLOTTANT TFIN*FLOTTANT LISTREF*LISTREEL ;
  4. ************************************************************************
  5. * PROCEDURE TRC (voir TRC.notice)
  6. * - Permet de retrouver un diagramme TRC à partir des evolutions
  7. * des proportions de phase en métallurgie.
  8. *
  9. * En entrée :
  10. * ------------
  11. * MODTHE : Modèle THERMIQUE sur lequel porte le changement de phase
  12. * MATPHAS: Matériau contenant les propriétés thermiques des phases
  13. * TPHASE : TABLE contenant la description des changements de phase
  14. * ==> A terme contenu dans le MATERIAUX
  15. * TINI : FLOTTANT donnant la temperature haute de depart
  16. * TFIN : FLOTTANT donnant la temperature basse
  17. * LISTREF: LISTREEL donnant les vitesses de refroidissement a simuler
  18. ************************************************************************
  19.  
  20. ************************************************************************
  21. * Pour faire des beaux DESSINS
  22. ************************************************************************
  23. * LISTMOTS contenant les couleurs
  24. LESCOUL = 'MOTS' 'VIOL' 'VERT' 'CYAN' 'BRIQ' 'BOUT' 'JAUN' 'OLIV'
  25. 'ORAN' 'ROUG' 'BLEU' 'BRUN' 'CARA' 'GRIS' 'NOIR' ;
  26. NBCOUL = 'DIME' LESCOUL;
  27.  
  28. * LISTMOTS contenant les marques dans DESS
  29. LESMARQ = 'MOTS' 'CROI' 'PLUS' 'MOIN' 'BARR' 'ETOI' 'CARR'
  30. 'LOSA' 'ROND' 'TRID' 'TRIU' 'TRIL' 'TRIR';
  31. NBMARQ = 'DIME' LESMARQ;
  32. ************************************************************************
  33.  
  34. * Nombre de vitesses de refroidissement a simuler
  35. NBVI = 'DIME' LISTREF;
  36.  
  37. * Extration d'un seul element et réduction du du MMODEL
  38. ELEM1 ='ELEM' 1 ('EXTR' MODTHE 'MAIL');
  39. MODTHE ='REDU' MODTHE ELEM1;
  40.  
  41. * Necessaire pour que TRANSNON soit en Thermique Transitoire
  42. MATBIDON ='MATE' MODTHE 'K' 0.D0 'RHO' 0.D0 'C' 0.D0 ;
  43.  
  44. * TEMPERATURE INITIALE
  45. CHPTINI ='MANU' 'CHPO' ELEM1 1 'T' TINI 'NATU' 'DIFFUS' ;
  46.  
  47. * Creation du MCHAML de proportion de phase INITIALE
  48. CTYP ='MOT' 'SCALAIRE';
  49. MCHPHA ='MANU' 'CHML' MODTHE 'MB ' 0. 'MART' 0. 'BAIN' 0.
  50. 'FERR' 0. 'AUST' 1.
  51. 'TYPE' CTYP 'NOEUD' ;
  52.  
  53. * CLs
  54. * TEMPERATURE IMPOSE PARTOUT
  55. CLTOT ='BLOQ' 'T' ELEM1 ;
  56. TEMBAS ='DEPI' 1. CLTOT ;
  57.  
  58. * Initialisations pour le POST-TRAITEMENT
  59. LISCOM ='EXTR' MCHPHA 'COMP' ;
  60. NBCOMP ='DIME' LISCOM ;
  61. TABTRC ='TABL';
  62. REPE SURVIT NBVI;
  63. II = &SURVIT;
  64. TABTRC . II ='TABL' ;
  65. TABPHA = TABTRC . II;
  66. REPE SURPHA NBCOMP;
  67. IPH = &SURPHA;
  68. NOMP='EXTR' LISCOM IPH;
  69. Pi ='EXTR' MCHPHA NOMP 1 1 1 ;
  70. TABPHA . IPH ='VIDE' 'LISTREEL' ;
  71. FIN SURPHA;
  72. FIN SURVIT;
  73.  
  74. EVTPS ='VIDE' 'EVOLUTIO';
  75. EVTPSP ='VIDE' 'EVOLUTIO';
  76. TDESS2 ='TABL' ;
  77. TDESS2 . 'TITRE' ='TABL' ;
  78. NBGRAPH = 0 ;
  79. REPE SURVIT NBVI;
  80. * Boucle sur les differentes vitesses de refroidissement
  81. II = &SURVIT;
  82.  
  83. VREFROI='EXTR' LISTREF II ;
  84. TIT1 ='CHAI' 'Vit. de Ref. : ' ('ENTI' 'PROC' VREFROI)'[Deg.s-1]';
  85. TPSFIN = -1. * (TFIN - TINI) / VREFROI ;
  86.  
  87. TPS0 = 1.D0 ;
  88. TPS1 = TPSFIN + 1.D0 ;
  89. DELTAt = TPS1 - TPS0 ;
  90.  
  91. * CHARGEMENT de TEMPERATURE imposee
  92. LTPSCHA ='PROG' TPS0 TPS1 ;
  93. LTCHA ='PROG' TINI TFIN ;
  94. EVT ='EVOL' 'MANU' LTPSCHA LTCHA;
  95. CHARTOT ='CHAR' 'TIMP' TEMBAS EVT ;
  96.  
  97. * TEMPS_CALCULES
  98. LTCAL ='PROG' TPS0 'PAS' (DELTAt / 88.) TPS1 ;
  99.  
  100. TPASAP ='TABL' ;
  101. TPASAP.'MODELE' = MODTHE ;
  102. TPASAP.'CARACTERISTIQUES' = MATBIDON ;
  103. TPASAP.'BLOCAGES_THERMIQUES' = CLTOT ;
  104. TPASAP.'CHARGEMENT' = CHARTOT ;
  105. TPASAP.'TEMPS_CALCULES' = LTCAL ;
  106.  
  107. TPASAP.'TEMPS' ='TABL' ;
  108. TPASAP.'TEMPERATURES' ='TABL' ;
  109. TPASAP.'PROPORTIONS_PHASES' ='TABL' ;
  110. TPASAP.'TEMPS' . 0 =('EXTR' LTCAL 1) ;
  111. TPASAP.'TEMPERATURES' . 0 = CHPTINI ;
  112. TPASAP.'PROPORTIONS_PHASES' . 0 = MCHPHA ;
  113.  
  114. * PROCEDURES Utilisateurs
  115. TPASAP.'PROCEDURE_PARA_THER' = VRAI ;
  116. TPASAP.'PROCEDURE_CHAR_THER' = VRAI ;
  117.  
  118. * Option PERSO pour l'integration du COMPORTEMENT des PHASES
  119. TPASAP.'PRECISION' = 1.D-8 ; COMM 'Critere Relatif';
  120. TPASAP.'PTOL' = 1.D-8 ; COMM 'Critere Absolu ';
  121. TPASAP.'NITERPHASE_MAX' = 100 ; COMM 'Voir CHARTHER' ;
  122. TPASAP.'IGNORE_NON_CONV' = VRAI ; COMM 'Voir CHARTHER' ;
  123.  
  124. PASAPAS TPASAP ;
  125.  
  126. ************************************************************************
  127. * POST-TRAITEMENT
  128. ************************************************************************
  129. * LRTPSL= ('LOG' LTCAL) / ('LOG' 10);
  130. LRT = TINI + ((TFIN - TINI) / DELTAt * (LTCAL - TPS0)) ;
  131. EVTPS = EVTPS 'ET' ('EVOL' 'MANU' 'Temp' LTCAL 'T' LRT) ;
  132. EVTPSP= EVTPSP 'ET' ('EVOL' 'MANU' 'Temp' LTCAL 'T' LRT) ;
  133. NBGRAPH = NBGRAPH + 1 ;
  134. TDESS2 . NBGRAPH ='CHAI' 'TIRR' ;
  135. TDESS2 . 'TITRE' . NBGRAPH ='CHAI' ('ENTI' 'PROC' VREFROI) ' C/s' ;
  136.  
  137. LTPS ='VIDE' 'LISTREEL';
  138.  
  139. TABPHA = TABTRC . II;
  140. REPE BLOC0 ('DIME' TPASAP.'TEMPS') ;
  141. I = &BLOC0 - 1 ;
  142. CHT = TPASAP.'TEMPERATURES' . I ;
  143. CHPHA = TPASAP.'PROPORTIONS_PHASES'. I ;
  144. LTPS = LTPS 'ET' (TPASAP.'TEMPS' . I) ;
  145.  
  146. * Extraction pour chaque phase de la valeur courante
  147. REPE SURPHA NBCOMP;
  148. IPH = &SURPHA;
  149. NOMP='EXTR' LISCOM IPH;
  150. Pi ='EXTR' CHPHA NOMP 1 1 1 ;
  151. TABPHA . IPH = TABPHA . IPH 'ET' Pi;
  152. FIN SURPHA;
  153. FIN BLOC0 ;
  154.  
  155. * Reconstitution des EVOL
  156. EVTOTa ='VIDE' 'EVOLUTIO';
  157. TDESS1 ='TABL' ;
  158. TDESS1 . 'TITRE' ='TABL' ;
  159. REPE SURPHA NBCOMP;
  160. IPH = &SURPHA;
  161. NOMP ='EXTR' LISCOM IPH;
  162. Pi ='EXTR' CHPHA NOMP 1 1 1 ;
  163. ICOUL = @MOD IPH NBCOUL;
  164. COUL1 ='EXTR' LESCOUL ICOUL;
  165. Lpi = TABPHA. IPH ;
  166. TABPHA . IPH ='EVOL' COUL1 'MANU' 'TEMP' LTPS NOMP Lpi;
  167. EVTOTa = EVTOTa 'ET' TABPHA . IPH ;
  168. TABPHA . IPH = TABPHA . IPH 'ET'
  169. ('EVOL' COUL1 'MANU' 'T' LRT NOMP Lpi);
  170. IMARQ = @MOD IPH NBMARQ;
  171. LAMAR ='EXTR' IMARQ LESMARQ;
  172. TDESS1 . IPH ='CHAI' 'MARQ ' LAMAR ' REGU';
  173. FIN SURPHA;
  174. TDESS1 . 'TITRE' . 1 ='CHAI' '1-Metal de base';
  175. TDESS1 . 'TITRE' . 2 ='CHAI' '2-Martensite ';
  176. TDESS1 . 'TITRE' . 3 ='CHAI' '3-Bainite ';
  177. TDESS1 . 'TITRE' . 4 ='CHAI' '4-Ferrite ';
  178. TDESS1 . 'TITRE' . 5 ='CHAI' '5-Austenite ';
  179. 'OPTI' 'TRAC' 'PSC';
  180. 'DESS' EVTOTa 'LEGE' TDESS1 'TITR' TIT1;
  181. EVTPSP = EVTPSP 'ET' EVTOTa;
  182. FIN SURVIT;
  183.  
  184. * Construction des domaines par phases
  185. TSEUIL1 ='TABL';
  186. TSEUIL2 ='TABL';
  187. REPE SURPHA (NBCOMP - 1);
  188. IPH = &SURPHA;
  189. TSEUIL1 . IPH ='TABL' ;
  190. TSEUIL1 . IPH.'Ltps' ='VIDE' 'LISTREEL';
  191. TSEUIL1 . IPH.'LT' ='VIDE' 'LISTREEL';
  192. TSEUIL2 . IPH = TABL;
  193. TSEUIL2 . IPH.'Ltps' ='VIDE' 'LISTREEL';
  194. TSEUIL2 . IPH.'LT' ='VIDE' 'LISTREEL';
  195. FIN SURPHA;
  196.  
  197. Seuil1 = 5.D-3 ;
  198. REPE SURVIT NBVI;
  199. II = &SURVIT ;
  200. TABPHA = TABTRC . II;
  201. REPE SURPHA (NBCOMP - 1);
  202. IPH = &SURPHA ;
  203. NOMP ='EXTR' LISCOM IPH ;
  204. EVO1 = TABPHA . IPH ;
  205. LTPS ='EXTR' EVO1 'ABSC' 1;
  206. LT ='EXTR' EVO1 'ABSC' 2;
  207. LPi ='EXTR' EVO1 'ORDO' 1;
  208.  
  209. * Definition des Seuil
  210. * Seuil2 = (('MAXI' LPi) * (1.D0 - Seuil1)) + (Seuil1 ** 2) ;
  211. * Seuil2 = ( 'MAXI' LPi) * (1.D0 - Seuil1) ;
  212. Seuil2 = ( 'MAXI' LPi) - Seuil1 ;
  213.  
  214. SI (('MAXI' LPi) '>' Seuil1);
  215. tpsS1 ='IPOL' Seuil1 ('ORDO' LPi 'CROI') LTPS ;
  216. TS1 ='IPOL' tpsS1 LTPS LT ;
  217.  
  218. SI (TS1 '>' TFIN);
  219. * Si la phase en question apparait
  220.  
  221. * Recherche de la fin d'apparition de la phase en question
  222. tpsS2='IPOL' Seuil2 ('ORDO' LPi 'CROI') LTPS ;
  223. TS2 ='IPOL' tpsS2 LTPS LT ;
  224. SI (TS2 '<' TS1);
  225. TSEUIL1. IPH.'Ltps' = TSEUIL1. IPH.'Ltps' 'ET' tpsS1;
  226. TSEUIL1. IPH.'LT' = TSEUIL1. IPH.'LT' 'ET' TS1;
  227. TSEUIL2. IPH.'Ltps' = TSEUIL2. IPH.'Ltps' 'ET' tpsS2;
  228. TSEUIL2. IPH.'LT' = TSEUIL2. IPH.'LT' 'ET' TS2;
  229. FINS;
  230. FINS;
  231. FINS;
  232. FIN SURPHA;
  233. FIN SURVIT;
  234.  
  235. EVTPS3 ='VIDE' 'EVOLUTIO';
  236. TDESS3 ='TABL' ;
  237. TDESS3 . 'TITRE' ='TABL' ;
  238. NBGRA3 = 0 ;
  239. REPE SURPHA (NBCOMP - 1);
  240. IPH = &SURPHA;
  241. NOMP ='EXTR' LISCOM IPH ;
  242. Ltsp1 = TSEUIL1 . IPH.'Ltps';
  243. ICOUL = @MOD IPH NBCOUL;
  244. COUL1 ='EXTR' LESCOUL ICOUL ;
  245. SI (('DIME' Ltsp1) '>' 2);
  246. * Ltpslog1=('LOG' Ltsp1) / ('LOG' 10);
  247. LT1 = TSEUIL1 . IPH.'LT' ;
  248. EVTPS = EVTPS 'ET' ('EVOL' COUL1 'MANU' Ltsp1 LT1);
  249. EVTPS3 = EVTPS3 'ET' ('EVOL' COUL1 'MANU' Ltsp1 LT1);
  250. NBGRAPH = NBGRAPH + 1 ;
  251. NBGRA3 = NBGRA3 + 1 ;
  252. TDESS2 . 'TITRE' . NBGRAPH ='CHAI' NOMP ' Debut';
  253. TDESS3 . 'TITRE' . NBGRA3 ='CHAI' NOMP ' Debut';
  254.  
  255. Ltsp2 = TSEUIL2 . IPH.'Ltps' ;
  256. * Ltpslog2=('LOG' Ltsp2) / ('LOG' 10);
  257. LT2 = TSEUIL2 . IPH.'LT' ;
  258. EVTPS = EVTPS 'ET' ('EVOL' COUL1 'MANU' Ltsp2 LT2);
  259. EVTPS3 = EVTPS3 'ET' ('EVOL' COUL1 'MANU' Ltsp2 LT2);
  260. NBGRAPH = NBGRAPH + 1 ;
  261. NBGRA3 = NBGRA3 + 1 ;
  262. TDESS2 . 'TITRE' . NBGRAPH ='CHAI' NOMP ' Fin';
  263. TDESS3 . 'TITRE' . NBGRA3 ='CHAI' NOMP ' Fin';
  264. FINS;
  265. FIN SURPHA;
  266.  
  267. 'OPTI' 'SORT' 'TRC.csv' ;
  268. 'SORT' 'EXCE' EVTPS ;
  269. 'OPTI' 'SORT' 'TRC_PHASES.csv';
  270. 'SORT' 'EXCE' EVTPSP ;
  271.  
  272. 'OPTI' 'EPTR' 10 ;
  273. 'OPTI' 'TRAC' 'PSC' ;
  274. TIT1 = 'CHAI' 'Diagramme TRC';
  275. 'DESS' EVTPS 'LOGX' 'TITR' TIT1 'LEGE' TDESS2;
  276. 'DESS' EVTPS3 'LOGX' 'TITR' TIT1 'LEGE' TDESS3;
  277.  
  278. * Pour fermer l'unité logique de TRACE
  279. 'OPTI' 'FTRA' 'BIDON.ps' ;
  280.  
  281. 'FINP' ;
  282.  
  283.  

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