Télécharger @uspost.procedur

Retour à la liste

Numérotation des lignes :

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

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