Télécharger trc.procedur

Retour à la liste

Numérotation des lignes :

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

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