Télécharger @USPOST.procedur

Retour à la liste

Numérotation des lignes :

  1. * @USPOST PROCEDUR MB234859 21/10/21 21:15:01 11111
  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. *
  16. ************************************************************************
  17. DEBP @USPOST T1*'TABLE' ID_BU*'ENTIER';
  18. *
  19. BOITE_US = T1.'BOITES_USURE' ;
  20. CycActu = BOITE_US.'INFOS'.'INDICE_CYCLE_ACTUEL' ;
  21. NbCycRe = BOITE_US.'INFOS'.'NB_CYCLES_RESTANTS' ;
  22. SUR_APPL = BOITE_US. ID_BU .'SURFACE_APPLICATION' ;
  23. *
  24. *----------------------------------------------------------------------*
  25. * - CYCLE CALCULE ET CYCLE REEL (DONNEES COMMUNES) *
  26. *----------------------------------------------------------------------*
  27. 'SI' ('EGA' ID_BU 1) ;
  28. BOITE_US.'POST'.'CYCLES_CALCULES' =
  29. BOITE_US.'POST'.'CYCLES_CALCULES' 'ET' CycActu ;
  30. *
  31. NCycle = BOITE_US.'DONNEES'.'NB_CYCLES' ;
  32. BOITE_US.'POST'.'CYCLES_REELS' =
  33. BOITE_US.'POST'.'CYCLES_REELS' 'ET' (NCycle '-' NbCycRe) ;
  34. 'FINSI' ;
  35. *
  36. *----------------------------------------------------------------------*
  37. * - PRESSION ET CISAILLEMENT MOYENS/MAX ET PROFONDEUR MAX *
  38. *----------------------------------------------------------------------*
  39. NbIncCy = BOITE_US.'INFOS'.'NB_INCREMENTS_PAR_CYCLE' ;
  40. PMaxInc = 'PROG' ; CMaxInc = 'PROG' ;
  41. 'REPE' BCL NbIncCy ;
  42. PresMax = 'MAXI' BOITE_US. ID_BU .'PRESSION_CONTACT'. &BCL 'ABS';
  43. PMaxInc = PMaxInc 'ET' PresMax ;
  44. CisaMax = 'MAXI' BOITE_US. ID_BU .'CISAILLEMENT'. &BCL 'ABS';
  45. CMaxInc = CMaxInc 'ET' CisaMax ;
  46. 'FIN' BCL ;
  47. *
  48. BOITE_US. ID_BU .'PRESSION_MAX_CYCLE' =
  49. BOITE_US. ID_BU .'PRESSION_MAX_CYCLE' 'ET' ('MAXI' PMaxInc) ;
  50. *
  51. BOITE_US. ID_BU .'CISAILLEMENT_MAX_CYCLE' =
  52. BOITE_US. ID_BU .'CISAILLEMENT_MAX_CYCLE' 'ET' ('MAXI' CMaxInc) ;
  53. *
  54. PressCum = 'ETG' BOITE_US. &BU .'PRESSION_CONTACT' ;
  55. BOITE_US. &BU .'PRESSION_CYCLE'. CycActu = PressCum ;
  56. PresMoy = PressCum / NbIncCy ;
  57. BOITE_US. ID_BU .'PRESSION_MOYENNE_CYCLE'. CycActu = PresMoy ;
  58. *
  59. CisaiCum = 'ETG' BOITE_US. &BU .'CISAILLEMENT' ;
  60. BOITE_US. &BU .'CISAILLEMENT_CYCLE'. CycActu = CisaiCum ;
  61. CisaMoy = CisaiCum / NbIncCy ;
  62. BOITE_US. ID_BU .'CISAILLEMENT_MOYEN_CYCLE'. CycActu = CisaMoy ;
  63. *
  64. GlissCum = 'ETG' BOITE_US. &BU .'GLISSEMENT' ;
  65. BOITE_US. &BU .'GLISSEMENT_CYCLE'. CycActu = GlissCum ;
  66. *
  67. ProfMax = 'MAXI' BOITE_US. ID_BU .'USURE_CYCLE' 'ABS' ;
  68. BOITE_US. ID_BU .'PROF_USEE_MAX_CYCLE' =
  69. BOITE_US. ID_BU .'PROF_USEE_MAX_CYCLE' 'ET' ProfMax ;
  70. *
  71. ProfMax = 'MAXI' BOITE_US. ID_BU .'USURE_TOTALE' 'ABS' ;
  72. BOITE_US. ID_BU .'PROF_USEE_MAX_TOTALE' =
  73. BOITE_US. ID_BU .'PROF_USEE_MAX_TOTALE' 'ET' ProfMax ;
  74. *
  75. *----------------------------------------------------------------------*
  76. * - CALCUL DE DELTA_G ET DELTA_T *
  77. *----------------------------------------------------------------------*
  78. CyclFret = BOITE_US. ID_BU .'CYCLE_DE_FRETTING'. CycActu ;
  79. *
  80. F_N_CyFr = 'EXTR' CyclFret 'ORDO';
  81. Ampl_F_N = ('MAXI' F_N_CyFr) '-' ('MINI' F_N_CyFr) ;
  82. ECycFret = 'ABS' ('INTG' CyclFret) ;
  83. DltG_Est = ECycFret / 2. / Ampl_F_N ;
  84. BOITE_US. ID_BU .'DELTA_G' =
  85. BOITE_US. ID_BU .'DELTA_G' 'ET' DltG_Est ;
  86. *
  87. Dlt_CyFr = 'EXTR' CyclFret 'ABSC';
  88. Ampl_Dlt = ('MAXI' Dlt_CyFr) '-' ('MINI' Dlt_CyFr) ;
  89. DltT_Est = (Ampl_Dlt / 2.) - DltG_Est ;
  90. LDltTPre = BOITE_US. ID_BU .'DELTA_T' ;
  91. BOITE_US. ID_BU .'DELTA_T' = LDltTPre 'ET' DltT_Est ;
  92. *
  93. * -- DOIT-ON REDETERMINER LES PAS DE TEMPS
  94. 'SI' (('EGA' ID_BU 1) 'ET' (BOITE_US.'INFOS'.'CALCUL_PAS'));
  95. ECycGtot = Ampl_F_N * Ampl_Dlt ;
  96. BOITE_US.'INFOS'.'AJUSTE_PAS' = FAUX ;
  97. * Uniquement si regime de glissement total
  98. 'SI' ((ECycFret / ECycGtot) '>' 0.2) ;
  99. BOITE_US.'INFOS'.'AJUSTE_PAS' = VRAI ;
  100. 'SI' ('NEG' CycActu 1) ;
  101. DltTPre = 'EXTR' LDltTPre ('DIME' LDltTPre) ;
  102. VarDltT = 'ABS' ((DltT_Est - DltTPre) / DltTPre) ;
  103. BOITE_US.'INFOS'.'AJUSTE_PAS' = (VarDltT '>' 0.1) ;
  104. 'FINSI' ;
  105. CHAZ = 'CHAI' 'Pas de temps recalcules : ' ;
  106. CHAZ = 'CHAI' CHAZ (BOITE_US.'INFOS'.'AJUSTE_PAS') ;
  107. 'MESS' CHAZ ;
  108. 'FINSI' ;
  109. 'FINSI' ;
  110. *
  111. *----------------------------------------------------------------------*
  112. * - ENERGIE DISSIPEE ET VOLUME USE PAR CYCLE ET TOTAL *
  113. *----------------------------------------------------------------------*
  114. ChamDEDC = 'CHAN' 'CHAM' (BOITE_US. ID_BU .'DENS_ENER_DISS_CYCLE')
  115. SUR_APPL ;
  116. EdCycle = 'INTG' BOITE_US. ID_BU .'MODINTG' ChamDEDC ;
  117. BOITE_US. ID_BU .'ENERGIE_DISSIPEE_CYCLE' =
  118. BOITE_US. ID_BU .'ENERGIE_DISSIPEE_CYCLE' 'ET' EdCycle ;
  119. *
  120. DensEnDT = BOITE_US. ID_BU .'DENS_ENER_DISS_TOTALE' ;
  121. ChamDEDT = 'CHAN' 'CHAM' DensEnDT SUR_APPL ;
  122. EdTotale = 'INTG' BOITE_US. ID_BU .'MODINTG' ChamDEDT ;
  123. BOITE_US. ID_BU .'ENERGIE_DISSIPEE_TOTALE' =
  124. BOITE_US. ID_BU .'ENERGIE_DISSIPEE_TOTALE' 'ET' EdTotale ;
  125. *
  126. ChamUsuc = 'CHAN' 'CHAM' (BOITE_US. ID_BU .'USURE_CYCLE') SUR_APPL ;
  127. VolUsCyc = 'INTG' BOITE_US. ID_BU .'MODINTG' ChamUsuc ;
  128. BOITE_US. ID_BU .'VOLUME_USE_CYCLE' =
  129. BOITE_US. ID_BU .'VOLUME_USE_CYCLE' 'ET' VolUsCyc ;
  130. *
  131. ChamUsut = 'CHAN' 'CHAM' (BOITE_US. ID_BU .'USURE_TOTALE') SUR_APPL ;
  132. VolusTot = 'INTG' BOITE_US. ID_BU .'MODINTG' ChamUsut ;
  133. BOITE_US. ID_BU .'VOLUME_USE_TOTAL' =
  134. BOITE_US. ID_BU .'VOLUME_USE_TOTAL' 'ET' VolUsTot ;
  135. *
  136. *----------------------------------------------------------------------*
  137. * - LARGEUR DE LA ZONE DE CONTACT *
  138. *----------------------------------------------------------------------*
  139. ChpCont = 'MASQ' DensEnDT 'SUPE' 0.D0 ;
  140. ChmCont = 'CHAN' 'CHAM' ChpCont SUR_APPL ;
  141. SurCont = 'INTG' BOITE_US. ID_BU .'MODINTG' ChmCont ;
  142. BOITE_US. ID_BU .'LARGEUR_CONTACT_CYCLE' =
  143. BOITE_US. ID_BU .'LARGEUR_CONTACT_CYCLE' 'ET' SurCont ;
  144. *
  145. *----------------------------------------------------------------------*
  146. * - CONSTRUCTION D'EVOLUTIONS AVANT DE QUITTER PASAPAS *
  147. *----------------------------------------------------------------------*
  148. 'SI' ('EGA' NbCycRe 0) ;
  149. *
  150. * Pression et cisaillement max en fonction du cycle calcule
  151. PmCycle = 'EVOL' 'VERT' 'MANU'
  152. 'Cycle_calcule' BOITE_US.'POST'.'CYCLES_CALCULES'
  153. 'Pression_Max' BOITE_US. ID_BU .'PRESSION_MAX_CYCLE' ;
  154. CmCycle = 'EVOL' 'ROUG' 'MANU'
  155. 'Cycle_calcule' BOITE_US.'POST'.'CYCLES_CALCULES'
  156. 'Cisaille_Max' BOITE_US. ID_BU .'CISAILLEMENT_MAX_CYCLE' ;
  157. *
  158. * Delta_g et Delta_t en fonction du cycle calcule
  159. DgCycle = 'EVOL' 'BLEU' 'MANU'
  160. 'Cycle_reel' BOITE_US.'POST'.'CYCLES_REELS'
  161. 'Delta_G' BOITE_US. ID_BU .'DELTA_G' ;
  162. DtCycle = 'EVOL' 'ROUG' 'MANU'
  163. 'Cycle_reel' BOITE_US.'POST'.'CYCLES_REELS'
  164. 'Delta_T' BOITE_US. ID_BU .'DELTA_T' ;
  165. *
  166. * Energie dissipee par cycle et totale en fonction du cycle calcule
  167. EdcCycle = 'EVOL' 'MANU'
  168. 'Cycle_calcule' BOITE_US.'POST'.'CYCLES_CALCULES'
  169. 'Ener_diss_cycle' BOITE_US. ID_BU .'ENERGIE_DISSIPEE_CYCLE' ;
  170. EdtCycle = 'EVOL' 'MANU'
  171. 'Cycle_calcule' (0 'ET' BOITE_US.'POST'.'CYCLES_CALCULES')
  172. 'Ener_diss_totale' BOITE_US. ID_BU .'ENERGIE_DISSIPEE_TOTALE' ;
  173. *
  174. * Volume use en fonction du cycle reel et de l'energie dissipee
  175. VuCycle = 'EVOL' 'MANU'
  176. 'Cycle_reel' (0 'ET' BOITE_US.'POST'.'CYCLES_REELS')
  177. 'Volume_use_total' BOITE_US. ID_BU .'VOLUME_USE_TOTAL' ;
  178. VuEdt = 'EVOL' 'MANU'
  179. 'Ener_diss_totale' BOITE_US. ID_BU .'ENERGIE_DISSIPEE_TOTALE'
  180. 'Volume_use_total' BOITE_US. ID_BU .'VOLUME_USE_TOTAL' ;
  181. *
  182. * Stockage
  183. BOITE_US. ID_BU .'PRESMAX_VS_CYCLES' = PmCycle ;
  184. BOITE_US. ID_BU .'CISAMAX_VS_CYCLES' = CmCycle ;
  185. BOITE_US. ID_BU .'DELTA_G_VS_CYCLES' = DgCycle ;
  186. BOITE_US. ID_BU .'DELTA_T_VS_CYCLES' = DtCycle ;
  187. BOITE_US. ID_BU .'ED_CYCLE_VS_CYCLES' = EdcCycle ;
  188. BOITE_US. ID_BU .'ED_TOT_VS_CYCLES' = EdtCycle ;
  189. BOITE_US. ID_BU .'V_USE_TOT_VS_CYCLES' = VuCycle ;
  190. BOITE_US. ID_BU .'V_USE_TOT_VS_ED_TOT' = VuEdt ;
  191. *
  192. 'FINSI' ;
  193. *
  194. FINP T1 ;
  195.  
  196.  

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