Télécharger trc.procedur

Retour à la liste

Numérotation des lignes :

  1. * TRC PROCEDUR SP204843 22/12/19 21:15:08 11531
  2. 'DEBP' TRC MODCP1*'MMODEL' MATCP1*'MCHAML'
  3. TINI*FLOTTANT TFIN*FLOTTANT LISTREF*LISTREEL MOT1*'MOT' FLOT1/'FLOTTANT' ;
  4. ************************************************************************
  5. * PROCEDURE TRC (voir TRC.notice)
  6. * - Permet de tracer un diagramme T.R.C. a partir d'un modele de
  7. * changement de phase metallurgique.
  8. *
  9. * En entrée :
  10. * ------------
  11. * MODCP1 : Modele METALLURGIQUE
  12. * MATCP1 : Caracteristiques du Modele METALLURGIQUE
  13. * TINI : FLOTTANT donnant la temperature haute de depart
  14. * TFIN : FLOTTANT donnant la temperature basse de fin
  15. * LISTREF: LISTREEL donnant les vitesses de refroidissement a simuler
  16. ************************************************************************
  17.  
  18. * Seuil detection phases :
  19. Seuil1 = 5.D-3 ;
  20. si (exis FLOT1) ; Seuil1 = flot1 ; fins ;
  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. * LISTMOTS contenant les marques dans DESS
  31. LESMARQ='MOTS' 'CROI' 'PLUS' 'MOIN' 'BARR' 'ETOI' 'CARR'
  32. 'LOSA' 'ROND' 'TRID' 'TRIU' 'TRIL' 'TRIR' ;
  33. NBMARQ ='DIME' LESMARQ ;
  34. ************************************************************************
  35.  
  36. LISTPHA='EXTR' MODCP1 'VARI';
  37. NBPHA ='DIME' LISTPHA ;
  38. NBTREF ='DIME' LISTREF ;
  39.  
  40. * On met le nom de la phase consommee en tete de liste :
  41. MOTPHA1 = extr LISTPHA 1 ;
  42. si (neg MOTPHA1 MOT1) ;
  43. LISTPHA2 = mots MOT1 ;
  44. repe bpha1 (dime LISTPHA) ;
  45. phai1 = extr LISTPHA &bpha1 ;
  46. si (ega phai1 MOT1) ; iter bpha1 ; fins ;
  47. LISTPHA2 = LISTPHA2 et phai1 ;
  48. fin bpha1 ;
  49. LISTPHA = LISTPHA2 ;
  50. fins ;
  51.  
  52. * Initialisation des TABLES
  53. EVO_TAB ='TABL' ;
  54. TSEUIL ='TABL' ;
  55. EVOT_TAB='TABL' ;
  56. PROP ='TABL' ;
  57. TRC ='VIDE' 'EVOLUTIO';
  58. 'REPE' BOUP NBPHA ;
  59. EVO_TAB. &BOUP ='TABL' ;
  60. TSEUIL . &BOUP ='TABL' ;
  61. TSEUIL . &BOUP .'tpsS1'='PROG' ;
  62. TSEUIL . &BOUP .'tpsS2'='PROG' ;
  63. TSEUIL . &BOUP .'TS1' ='PROG' ;
  64. TSEUIL . &BOUP .'TS2' ='PROG' ;
  65. 'FIN' BOUP ;
  66.  
  67. * Par defaut la premiere phase est a 100% au debut des calculs
  68. PROPini ='CHAN' 'NOEUD' MODCP1 ('ZERO' MODCP1 'VARINTER');
  69. MOPHA ='EXTR' LISTPHA 1;
  70. PROPini = PROPini '+' ('EXCO' PROPini MOPHA MOPHA + 1.D0) ;
  71.  
  72. 'REPE' BOU_VIT NBTREF ;
  73. vit = &BOU_VIT;
  74.  
  75. * Declaration de la vitesse de refroidissement : en Degres/s
  76. DT_vit = -1. * ('EXTR' LISTREF vit ) ;
  77. MCHTPOI='MANU' 'CHML' MODCP1 'TPOI' DT_vit 'TYPE' 'SCALAIRE' 'NOEUD';
  78.  
  79. * Calcul de la duree du refroidissement :
  80. DUREE = -1. * (TINI - TFIN) / DT_vit ;
  81.  
  82. * Declaration du Temps initial :
  83. TEMPINI= 1. ;
  84.  
  85. * Calcul du Temps final :
  86. TEMPFIN= TEMPINI + DUREE ;
  87.  
  88. * Calcul du pas de temps en fonction de la vitesse de refroidissement :
  89. DTPS = -20. / DT_vit ;
  90.  
  91. LTCAL = 'PROG' TEMPINI 'PAS' DTPS TEMPFIN ;
  92. T = TINI + (DT_vit * (LTCAL - TEMPINI));
  93. nbpas =('DIME' LTCAL) - 1 ;
  94.  
  95. * Initialisation de CHE1 : prop de phases initiales :
  96. CHE1 = PROPini ;
  97.  
  98. * Extraction des proportions de phase au Pt de Gauss :
  99. 'REPE' SURPHA NBPHA;
  100. MOPHA ='EXTR' LISTPHA &SURPHA ;
  101. Pi ='EXCO' CHE1 MOPHA MOPHA ;
  102. PiVal ='EXTR' Pi MOPHA 1 1 1 ;
  103. PROP.MOPHA ='PROG' PiVal ;
  104. 'FIN' SURPHA;
  105.  
  106. 'REPE' CTEMP nbpas;
  107. * On recupere le temps debut de pas et le temps fin de pas :
  108. temp0 ='EXTR' LTCAL &CTEMP ;
  109. temp1 ='EXTR' LTCAL (&CTEMP + 1);
  110. CHETPS0 ='MANU' 'CHML' MODCP1 'TEMP' temp0 'TYPE' 'SCALAIRE' 'NOEUD';
  111. CHETPS1 ='MANU' 'CHML' MODCP1 'TEMP' temp1 'TYPE' 'SCALAIRE' 'NOEUD';
  112.  
  113. * On calcule la temperature debut de pas et la temperature fin de pas :
  114. T0 ='EXTR' T &CTEMP ;
  115. T1 ='EXTR' T (&CTEMP + 1);
  116. CHT0 ='MANU' 'CHML' MODCP1 'T' T0 'TYPE' 'SCALAIRE' 'NOEUD';
  117. CHT1 ='MANU' 'CHML' MODCP1 'T' T1 'TYPE' 'SCALAIRE' 'NOEUD';
  118.  
  119. ETAT1 = CHT0 'ET' MCHTPOI ;
  120. ETAT2 = CHT1 'ET' MCHTPOI ;
  121.  
  122. MATCPa ='VARI' 'NUAG' MODCP1 MATCP1 ETAT1 ;
  123. MATCPb ='VARI' 'NUAG' MODCP1 MATCP1 ETAT2 ;
  124.  
  125. CHE1 ='COMP' MODCP1 (CHE1 'ET' CHETPS0 'ET' CHT0 'ET' MATCPa) (CHETPS1 'ET' CHT1 'ET' MATCPb) ;
  126.  
  127. * Extraction des proportions de phase au Pt de Gauss :
  128. 'REPE' BOUP NBPHA;
  129. MOPHA ='EXTR' LISTPHA &BOUP ;
  130. Pi ='EXCO' CHE1 MOPHA MOPHA ;
  131. PiVal ='EXTR' Pi MOPHA 1 1 1 ;
  132. PROP.MOPHA = PROP.MOPHA 'ET' PiVal ;
  133. 'FIN' BOUP;
  134. 'FIN' CTEMP;
  135.  
  136. 'REPE' BOUP NBPHA;
  137. MOPHA ='EXTR' LISTPHA &BOUP ;
  138. COULEUR ='EXTR' LESCOUL &BOUP ;
  139. EVO_TAB. &BOUP .vit ='EVOL' COULEUR 'MANU' 'TEMP' LTCAL 'PROP' PROP.MOPHA;
  140. 'FIN' BOUP;
  141.  
  142. COULEUR ='EXTR' LESCOUL (NBPHA + 1);
  143. EVOT ='EVOL' COULEUR 'MANU' 'TEMP' LTCAL 'T' T;
  144. EVOT_TAB.vit = EVOT ;
  145.  
  146. LTCAL = LTCAL '+' ('VALE' 'PREC') ;
  147. TRC = TRC 'ET' ('EVOL' 'NOIR' 'MANU' 'TEMP' LTCAL 'T' T) ;
  148. 'FIN' BOU_VIT ;
  149.  
  150. * PostTraitement :
  151. 'REPE' BOU_VIT NBTREF ;
  152. vit = &BOU_VIT ;
  153. DT_vit = -1 * ('EXTR' LISTREF vit) ;
  154.  
  155. EVO ='VIDE' 'EVOLUTIO' ;
  156. TL ='TABL' ;
  157. TL.'TITRE' ='TABL' ;
  158. 'REPE' BOUP NBPHA;
  159. EVO = EVO 'ET' (EVO_TAB. &BOUP .vit) ;
  160. MOPHA ='EXTR' LISTPHA &BOUP ;
  161. IMARQ = @MOD &BOUP NBMARQ ;
  162. LAMARQ ='EXTR' LESMARQ IMARQ ;
  163. TL. &BOUP ='CHAI' 'MARQ' ' ' LAMARQ ' ' 'REGU';
  164. TL.'TITRE'. &BOUP ='CHAI' &BOUP '-' MOPHA ;
  165. 'FIN' BOUP;
  166.  
  167. TITRE ='CHAI' 'Vitesse :' ('ENTI' 'PROC' DT_vit) ' Deg.s^{-1}' ;
  168. * 'DESS' EVO 'GRIL' 'TIRC' 'GRIS' 'LEGE' TL 'TITR' TITRE ;
  169.  
  170. EVOT = EVOT_TAB.vit ;
  171. T ='EXTR' EVOT 'ORDO' 1;
  172.  
  173. 'REPE' BOUP NBPHA ;
  174. NumPROP = &BOUP ;
  175. EVO = EVO_TAB.NumPROP.vit ;
  176.  
  177. * Traitement de EVO
  178. TEMPS ='EXTR' EVO 'ABSC' 1 ;
  179. PROP ='EXTR' EVO 'ORDO' 1 ;
  180.  
  181. 'SI' (('MAXI' PROP) '>' Seuil1);
  182. 'SI' (NumPROP 'EGA' 1);
  183. * tpsS1 : temps debut disparition de PROP
  184. Seuil1 = 1.D0 - Seuil1 ;
  185. tpsS1 = 'IPOL' Seuil1 ('ORDO' PROP 'DECR') TEMPS ;
  186. 'SINO';
  187. * tpsS1 : temps debut apparition de PROP
  188. tpsS1 = 'IPOL' Seuil1 ('ORDO' PROP 'CROI') TEMPS ;
  189. 'FINS';
  190. * TS1 : T°C correspondant à tpsS1
  191. TS1 ='IPOL' tpsS1 TEMPS T ;
  192.  
  193. 'SI' (TS1 '>' TFIN);
  194. 'SI' (NumPROP 'EGA' 1);
  195. Seuil2 = 0.5 ;
  196. * tpsS2 : temps 50% de la PROP
  197. tpsS2 = 'IPOL' Seuil2 ('ORDO' PROP 'DECR') TEMPS ;
  198. 'SINO';
  199. Seuil2 = ('MAXI' PROP) - Seuil1 ;
  200. * tpsS2 : temps fin apparition de PROP
  201. tpsS2 = 'IPOL' Seuil2 ('ORDO' PROP 'CROI') TEMPS ;
  202. 'FINS';
  203. * TS2 : T°C correspondant à tpsS2
  204. TS2 ='IPOL' tpsS2 TEMPS T ;
  205.  
  206. 'SI' (TS2 '<' TS1);
  207. TSEUIL.NumPROP.'tpsS1'= TSEUIL.NumPROP.'tpsS1' 'ET' tpsS1 ;
  208. TSEUIL.NumPROP.'tpsS2'= TSEUIL.NumPROP.'tpsS2' 'ET' tpsS2 ;
  209. TSEUIL.NumPROP.'TS1' = TSEUIL.NumPROP.'TS1' 'ET' TS1 ;
  210. TSEUIL.NumPROP.'TS2' = TSEUIL.NumPROP.'TS2' 'ET' TS2 ;
  211. 'FINS' ;
  212. 'FINS' ;
  213. 'FINS' ;
  214. 'FIN' BOUP ;
  215. 'FIN' BOU_VIT ;
  216.  
  217. * Diagramme TRC avec les courbes de vitesse
  218. EVO ='VIDE' 'EVOLUTIO' ;
  219. 'REPE' BOUP NBPHA ;
  220. COULEUR ='EXTR' LESCOUL &BOUP ;
  221. 'SI' (&BOUP 'EGA' 1);
  222. EVO = EVO 'ET' ('EVOL' COULEUR 'MANU' 'TEMP' (TSEUIL. &BOUP .'tpsS2') 'T' (TSEUIL. &BOUP .'TS2')) ;
  223. 'SINO';
  224. EVO = EVO 'ET' ('EVOL' COULEUR 'MANU' 'TEMP' (TSEUIL. &BOUP .'tpsS1') 'T' (TSEUIL. &BOUP .'TS1'))
  225. 'ET' ('EVOL' COULEUR 'MANU' 'TEMP' (TSEUIL. &BOUP .'tpsS2') 'T' (TSEUIL. &BOUP .'TS2')) ;
  226. 'FINS';
  227. 'FIN' BOUP ;
  228.  
  229. TL ='TABL';
  230. TL.'TITRE' ='TABL';
  231. 'REPE' BOU_VIT NBTREF ;
  232. vit = &BOU_VIT ;
  233. DT_vit =-1 * ('EXTR' LISTREF vit) ;
  234. TL.'TITRE'.vit='CHAI' ('ENTI' 'PROC' DT_vit) ' Deg.s^{-1}' ;
  235. TL.vit ='TIRR' ;
  236. 'FIN' BOU_VIT ;
  237. TITRE ='CHAI' 'Diagramme TRC' ;
  238. * 'DESS' (TRC 'ET' EVO ) 'LOGX' 'XBOR' 1. 1E3 'GRIL' 'TIRC' 'GRIS' 'LEGE' TL 'TITR' TITRE ;
  239. * 'DESS' (TRC 'ET' EVO ) 'LOGX' 'GRIL' 'TIRC' 'GRIS' 'LEGE' TL 'TITR' TITRE ;
  240.  
  241. * Diagramme TRC sans les courbes de vitesse
  242. TL ='TABL' ;
  243. TL.'TITRE' ='TABL' ;
  244. IA = 0 ;
  245. 'REPE' BOUP NBPHA ;
  246. MOPHA ='EXTR' LISTPHA &BOUP ;
  247. 'SI' (&BOUP 'EGA' 1);
  248. IA = IA + 1 ;
  249. TL.'TITRE'.IA='CHAI' MOPHA ' 50%';
  250. 'SINO';
  251. IA = IA + 1 ;
  252. TL.'TITRE'.IA='CHAI' MOPHA ' debut';
  253. IA = IA + 1 ;
  254. TL.'TITRE'.IA='CHAI' MOPHA ' fin' ;
  255. 'FINS';
  256. 'FIN' BOUP ;
  257. TITRE = 'CHAI' 'Diagramme TRC' ;
  258. * 'DESS' EVO 'LOGX' 'XBOR' 1. 1E3 'GRIL' 'TIRC' 'GRIS' 'LEGE' TL 'TITR' TITRE ;
  259. 'DESS' EVO 'LOGX' 'YBOR' TFIN TINI 'YGRA' 100. 'GRIL' 'TIRC' 'GRIS' 'LEGE' TL 'TITR' TITRE ;
  260. 'FINP' ;
  261.  
  262.  

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