Télécharger @USPOST.procedur

Retour à la liste

Numérotation des lignes :

  1. * @USPOST PROCEDUR MB234859 19/11/27 21:15:01 10399
  2. ***********************************************************************
  3. * PROCEDURE @USPOST
  4. *
  5. * Procedure de post-traitement specifique aux calculs d'usure
  6. *
  7. * Entrees :
  8. * T1 : Table de PASAPAS
  9. * ID_BU : Entier donnant le numero de la BOITE D'USURE a considerer
  10. *
  11. * Sortie :
  12. * T1 : Table de PASAPAS avec les resultats calcules
  13. *
  14. * Appelee par @USURE
  15. * [Collaboration LTDS - These E. Marc]
  16. *
  17. ***********************************************************************
  18. DEBP @USPOST T1*'TABLE' ID_BU*'ENTIER';
  19. *
  20. BOITE_US = T1.'BOITES_USURE' ;
  21. CycActu = BOITE_US.'INFOS'.'INDICE_CYCLE_ACTUEL' ;
  22. NCyNum = BOITE_US.'INFOS'.'NB_CYCLES_NUM' ;
  23. *
  24. 'SI' ('EGA' ID_BU 1) ;
  25. * Numero du cycle calcule
  26. LstNCN = BOITE_US.'POST'.'LISTE_CYCLES_NUMERIQUES' ;
  27. LstNCN = LstNCN 'ET' CycActu ;
  28. BOITE_US.'POST'.'LISTE_CYCLES_NUMERIQUES' = LstNCN ;
  29. *
  30. * Nombre de Cycle Reel Equivalent
  31. LstNCRE = BOITE_US.'POST'.'LISTE_CYCLES_REELS' ;
  32. BETA = BOITE_US.'DONNEES'.'ACCELERATION' ;
  33. NCRE = BETA*CycActu ;
  34. LstNCRE = LstNCRE 'ET' NCRE ;
  35. BOITE_US.'POST'.'LISTE_CYCLES_REELS' = LstNCRE ;
  36. 'FINSI' ;
  37. *
  38. * Pression de contact moyenne et cisaillement moyen
  39. NbIncCy = BOITE_US.'INFOS'.'NB_INCREMENTS_PAR_CYCLE' ;
  40. LstMPres = 'PROG' ; LstMCisa = 'PROG' ;
  41. 'REPE' BCL NbIncCy ;
  42. PrfPress = BOITE_US. ID_BU .'EVO_PRESSION_CONTACT' . &BCL ;
  43. PrfCisai = BOITE_US. ID_BU .'EVO_CISAILLEMENT_CONTACT'. &BCL ;
  44. OrdPress = 'EXTR' PrfPress 'ORDO' ;
  45. OrdCisai = 'EXTR' PrfCisai 'ORDO' ;
  46. LstMPres = LstMPres 'ET' ('MAXI' OrdPress) ;
  47. LstMCisa = LstMCisa 'ET' ('MAXI' ('ABS' OrdCisai)) ;
  48. 'SI' (&BCL 'EGA' 1);
  49. PressCum = OrdPress ;
  50. CisaiCum = OrdCisai ;
  51. 'SINON' ;
  52. PressCum = PressCum + OrdPress ;
  53. CisaiCum = CisaiCum + OrdCisai ;
  54. 'FINSI' ;
  55. 'FIN' BCL ;
  56. *
  57. LstPrMax = BOITE_US. ID_BU .'PRESSION_MAX' ;
  58. LstPrMax = LstPrMax 'ET' ('MAXI' LstMPres) ;
  59. LstCiMax = BOITE_US. ID_BU .'CISAILLEMENT_MAX' ;
  60. LstCiMax = LstCiMax 'ET' ('MAXI' LstMCisa) ;
  61. BOITE_US. ID_BU .'PRESSION_MAX' = LstPrMax ;
  62. BOITE_US. ID_BU .'CISAILLEMENT_MAX' = LstCiMax ;
  63. *
  64. yPresMoy = PressCum / NbIncCy ;
  65. yCisaMoy = CisaiCum / NbIncCy ;
  66. xAbsc = 'EXTR' PrfPress 'ABSC' ;
  67. PressMoy = 'EVOL' 'MANU' 'Absc' xAbsc 'Press. Contact' yPresMoy ;
  68. CisaiMoy = 'EVOL' 'MANU' 'Absc' xAbsc 'Cisai. Contact' yCisaMoy ;
  69. BOITE_US. ID_BU .'EVO_PRESSION_MOYENNE_CYCLE' . CycActu = PressMoy ;
  70. BOITE_US. ID_BU .'EVO_CISAILLEMENT_MOYEN_CYCLE'. CycActu = CisaiMoy ;
  71. *
  72. * Calcul de delta_g et delta_t
  73. CyclFret = BOITE_US. ID_BU .'CYCLE_DE_FRETTING'. CycActu ;
  74. * - Delta_g
  75. F_N_CyFr = 'EXTR' CyclFret 'ORDO';
  76. Ampl_F_N = ('MAXI' F_N_CyFr) - ('MINI' F_N_CyFr) ;
  77. ECycFret = 'EXTR' ('INTG' CyclFret) 1 ;
  78. DltG_Est = ECycFret / 2. / Ampl_F_N ;
  79. LstDltaG = BOITE_US. ID_BU .'DELTA_G' ;
  80. LstDltaG = LstDltaG 'ET' DltG_Est ;
  81. BOITE_US. ID_BU .'DELTA_G' = LstDltaG ;
  82. * - Delta_t
  83. Dlt_CyFr = 'EXTR' CyclFret 'ABSC';
  84. Ampl_Dlt = ('MAXI' Dlt_CyFr) - ('MINI' Dlt_CyFr) ;
  85. DltT_Est = (Ampl_Dlt / 2.) - DltG_Est ;
  86. LstDltaT = BOITE_US. ID_BU .'DELTA_T' ;
  87. LstDltaT = LstDltaT 'ET' DltT_Est ;
  88. BOITE_US. ID_BU .'DELTA_T' = LstDltaT ;
  89. *
  90. * Est-on en glissement partiel ou glissement total?
  91. 'SI' ('EGA' ID_BU 1) ;
  92. ECycGtot = Ampl_F_N * Ampl_Dlt ;
  93. BOITE_US.'INFOS'.'AJUSTE_PAS' = FAUX ;
  94. 'SI' ((ECycFret / ECycGtot) '>' 0.2) ;
  95. 'SI' ('EGA' CycActu 1) ;
  96. BOITE_US.'INFOS'.'AJUSTE_PAS' = VRAI ;
  97. 'SINON' ;
  98. DltT_Pre = 'EXTR' LstDltaT (('DIME' LstDltaT) - 1) ;
  99. Var_DltT = ('ABS' ((DltT_Est - DltT_Pre) / DltT_Est)) * 100. ;
  100. BOITE_US.'INFOS'.'AJUSTE_PAS' = (Var_DltT '>' 10.) ;
  101. 'FINSI' ;
  102. 'FINSI' ;
  103. 'FINSI' ;
  104. *
  105. * - Energie dissipee pendant le cycle CycActu
  106. EvEnDCyc = BOITE_US. ID_BU .'EVO_ENERGIE_DISSIPEE_CYCLE' ;
  107. EdSurCyc = 'INTG' EvEnDCyc ;
  108. LstEdPC = BOITE_US. ID_BU .'L_ENERGIE_DISSIPEE_CYCLE' ;
  109. LstEdPC = LstEdPC 'ET' EdSurCyc ;
  110. BOITE_US. ID_BU .'L_ENERGIE_DISSIPEE_CYCLE' = LstEdPC ;
  111. *
  112. * - Energie dissipee totale
  113. EvEnDTot = BOITE_US. ID_BU .'EVO_ENERGIE_DISSIPEE_TOTALE' ;
  114. EdTotale = 'INTG' EvEnDTot ;
  115. LstEdTot = BOITE_US. ID_BU .'L_ENERGIE_DISSIPEE_TOTALE' ;
  116. LstEdTot = LstEdTot 'ET' EdTotale ;
  117. BOITE_US. ID_BU .'L_ENERGIE_DISSIPEE_TOTALE' = LstEdTot ;
  118. *
  119. * - Volume use pendant le cycle CycActu
  120. EvNouvUs = BOITE_US. ID_BU .'EVO_USURE_CYCLE' ;
  121. VolUsCyc = 'INTG' EvNouvUs ;
  122. LstVUsPC = BOITE_US. ID_BU .'VOLUME_USE_CYCLE' ;
  123. LstVUsPC = LstVUsPC 'ET' VolUsCyc ;
  124. BOITE_US. ID_BU .'VOLUME_USE_CYCLE' = LstVUsPC ;
  125. *
  126. * - Volume use total
  127. EvCumuUs = BOITE_US. ID_BU .'EVO_USURE_TOTALE' ;
  128. VolUsTot = 'INTG' EvCumuUs ;
  129. LstVolUs = BOITE_US. ID_BU .'VOLUME_USE_TOTAL' ;
  130. LstVolUs = LstVolUs 'ET' VolUsTot ;
  131. BOITE_US. ID_BU .'VOLUME_USE_TOTAL' = LstVolUs ;
  132. *
  133. * Construction des evolutions s'il s'agit du dernier cycle calcule
  134. 'SI' ('EGA' CycActu NcyNum) ;
  135. *
  136. * Pour les Evols '_TOTAL', on veut commencer le trace a 0
  137. LstNCN = BOITE_US.'POST'.'LISTE_CYCLES_NUMERIQUES' ;
  138. Lst0NCN = 0 'ET' LstNCN ;
  139. LstNCRE = BOITE_US.'POST'.'LISTE_CYCLES_REELS' ;
  140. Lst0NCRE = 0 'ET' LstNCRE ;
  141. *
  142. * Legendes
  143. TxtNCRE = 'Cyc. Reels' ; TxtNCN = 'Cyc. Num.' ;
  144. *
  145. * Pression max et cisaillement max en fonction du cycle calcule
  146. EvMaxPre = 'EVOL' 'VERT' 'MANU' TxtNCN LstNCN 'Pression Max' LstPrMax ;
  147. EvMaxCis = 'EVOL' 'ROUG' 'MANU' TxtNCN LstNCN 'Cisaill. Max' LstCiMax ;
  148. BOITE_US. ID_BU .'PRESSION_MAX_VS_CYCLES_NUMS' = EvMaxPre ;
  149. BOITE_US. ID_BU .'CISAILLEMENT_MAX_VS_CYCLES_NUMS' = EvMaxCis ;
  150. *
  151. * Delta_g et Delta_t en fonction du cycle calcule
  152. EvDtGCRE = 'EVOL' 'BLEU' 'MANU' TxtNCRE LstNCRE
  153. 'Delta G (mm)' LstDltaG ;
  154. EvDtTCRE = 'EVOL' 'ROUG' 'MANU' TxtNCRE LstNCRE
  155. 'Delta T (mm)' LstDltaT ;
  156. BOITE_US. ID_BU .'DELTA_G_VS_CYCLES_REELS' = EvDtGCRE ;
  157. BOITE_US. ID_BU .'DELTA_T_VS_CYCLES_REELS' = EvDtTCRE ;
  158. *
  159. * Energie dissipee par cycle et totale en fonction du cycle calcule
  160. EvEdByCN = 'EVOL' 'MANU' TxtNCN LstNCN 'Energie dissipee cycle' LstEdPC ;
  161. EvEnDisT = 'EVOL' 'MANU' TxtNCN Lst0NCN 'Energie dissipee totale' LstEdTot;
  162. BOITE_US. ID_BU .'ENER_DISS_CYCLE_VS_CYCLES' = EvEdByCN ;
  163. BOITE_US. ID_BU .'ENER_DISS_TOT_VS_CYCLES' = EvEnDisT ;
  164. *
  165. * Volume use en fonction du cycle reel et de l'energie dissipee
  166. EvVUsCRE = 'EVOL' 'MANU' TxtNCE Lst0NCRE 'Volume use total' LstVolUs;
  167. EvVUsEdT = 'EVOL' 'MANU' 'Energie dissipee totale' LstEdTot
  168. 'Volume use total' LstVolUs ;
  169. BOITE_US. ID_BU .'V_USE_TOT_VS_CYCLES_REELS' = EvVUsCRE ;
  170. BOITE_US. ID_BU .'V_USE_TOT_VS_ENER_DISS_TOT' = EvVUsEdT ;
  171. *
  172. 'FINSI' ;
  173. *
  174. FINP T1 ;
  175.  
  176.  
  177.  

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