Télécharger @PRCA5.procedur

Retour à la liste

Numérotation des lignes :

  1. * @PRCA5 PROCEDUR MB234859 17/09/26 21:15:05 9567
  2. ***********************************************************************
  3. *
  4. * CETTE PROCEDURE A ETE MISE GRACIEUSEMENT A DISPOSITION DES
  5. * UTILISATEURS PAR LE LTDS - Ecole Centrale Lyon (S. Fouvry et S.Garcin)
  6. *
  7. ***********************************************************************
  8. * PROCEDURE DE CALCUL @PRCA5
  9. *
  10. * Calcul de l'energie dissipee durant le cycle numerique (integration
  11. * du cycle de fretting), du volume use durant beta cycles numeriques
  12. * (integration du profil d'usure) et du nombre de cycles reels
  13. * equivalent (variable scalaire incrementee).
  14. *
  15. * Entrees :
  16. * T1 : Table de PASAPAS
  17. * ID_BU : Entier donnant le numero de la BOITE D'USURE a considerer
  18. *
  19. * Sortie :
  20. * T1 : Table de PASAPAS avec les booleens mis a jour
  21. *
  22. * Appelee par @EVN_MNG
  23. *
  24. ***********************************************************************
  25. DEBP @PRCA5 T1*'TABLE' ID_BU*'ENTIER';
  26.  
  27. TT = T1 . 'TEMPS' ;
  28. Inc = (DIME TT) - 1 ;
  29. TpsEst = T1.'ESTIMATION'.'TEMPS' ;
  30. SI (TpsEst <EG 1.e-10) ; Inc = 0 ; FINSI ;
  31.  
  32. BOITE_US = T1.'BOITES_USURES'. ID_BU ;
  33. EntreeNC = BOITE_US.'EntreeNC' ;
  34. TermineC = BOITE_US.'TermineC' ;
  35. NCNECC = BOITE_US.'NCNECC' ;
  36. BETA = BOITE_US.'FACTEUR_ACCELERATION' ;
  37. FirstCyc = TermineC ET (NCNECC EGA 1) ;
  38.  
  39. SI FirstCyc ;
  40. LstNCN = PROG ;
  41. LstNCRE = PROG ;
  42. Lst0NCN = PROG 0 .;
  43. Lst0NCRE = PROG 0. ;
  44.  
  45. LstVolUs = PROG 0. ;
  46. LstVUsPC = PROG ;
  47. LstEdPC = PROG ;
  48. LstEdTot = PROG 0. ;
  49. NCRE = 0. ;
  50. LstDltaG = PROG ;
  51. LstDltaT = PROG ;
  52. LstPrMax = PROG ;
  53. LstCiMax = PROG ;
  54. LstCArea = PROG ;
  55. SINON ;
  56. LstNCN = BOITE_US.'LISTE_NUMERO_CYCLE_NUMERIQUE' ;
  57. LstNCRE = BOITE_US.'LISTE_NOMBRE_CYCLES_REELS_EQUIVALENT' ;
  58. LstVolUs = BOITE_US.'LISTE_VOLUME_USE_CUMULE' ;
  59. LstVUsPC = BOITE_US.'LISTE_VOLUME_USE_PAR_CYCLE' ;
  60. LstEdPC = BOITE_US.'LISTE_ENERGIE_DISSIPEE_PAR_CYCLE_NUM' ;
  61. LstEdTot = BOITE_US.'LISTE_ENERGIE_DISSIPEE_TOTALE' ;
  62. NCRE = BOITE_US.'NOMBRE_CYCLES_REELS_EQUIVALENT' ;
  63. LstDltaG = BOITE_US.'LISTE_DELTA_G_ESTIMES' ;
  64. LstDltaT = BOITE_US.'LISTE_DELTA_T_ESTIMES' ;
  65. LstPrMax = BOITE_US.'LISTE_PRESSION_MAX' ;
  66. LstCiMax = BOITE_US.'LISTE_CISAILLEMENT_MAX' ;
  67. LstCArea = BOITE_US.'LISTE_AIRE_DE_CONTACT' ;
  68. FINSI ;
  69.  
  70. * Section de calcul des donnees
  71. * Integ du volume use : Charger le profil d'usure
  72. * Integ de l'energie dissipee sur le cycle : Charger le cycle de fretting
  73. EvNouvUs = BOITE_US.'EVO_USURE_APPLIQUEE' . NCNECC ;
  74. EvCumuUs = BOITE_US.'EVO_USURE_CUMULEE' . NCNECC ;
  75. CyclFret = BOITE_US.'CYCLE_DE_FRETTING' . NCNECC ;
  76. EvEnDCyc = BOITE_US.'EVO_ENERGIE_DISSIPEE_CYCLE' . NCNECC ;
  77. EvEnDTot = BOITE_US.'EVO_ENERGIE_DISSIPEE_TOTALE' ;
  78.  
  79. * Section d'importation des champs de pression et cisaillement de contact :
  80. * - Recuperation des increments du cycle : Liste des Increments du Cycle en Cou
  81. * - Boucle sur ces increments et chargement des profils concernes
  82. * - Calcul des maximums
  83. * - Identification des bords de contact => Taille de contact
  84. * - Constitution de profils moyennes sur cycle
  85. LstIncCC = BOITE_US.'LISTE_INCREMENTS_DU_CYCLE'.NCNECC ;
  86. LstTpsCC = BOITE_US.'LISTE_TEMPS_DU_CYCLE'. NCNECC ;
  87. NbrIncCC = DIME LstIncCC ;
  88. PremIncr = MINI LstIncCC ;
  89. LstMPres = PROG ; LstMCisa = PROG ; LstMGlis = PROG ;
  90.  
  91. REPE BSICC NbrIncCC ;
  92. Inc_ii = PremIncr + &BSICC - 1 ;
  93. PrfPress = BOITE_US.'EVO_PRESSION_CONTACT' . Inc_ii ;
  94. PrfCisai = BOITE_US.'EVO_CISAILLEMENT_CONTACT' . Inc_ii ;
  95. PrfGliss = BOITE_US.'EVO_GLISSEMENT_CONTACT' . Inc_ii ;
  96.  
  97. OrdPress = EXTR PrfPress 'ORDO' ;
  98. OrdCisai = EXTR PrfCisai 'ORDO' ;
  99. OrdDCSli = EXTR PrfGliss 'ORDO' ;
  100. MaxPr_ii = MAXI OrdPress ; MaxCi_ii = MAXI (ABS OrdCisai) ;
  101. MaxDCSii = MAXI (ABS OrdDCSli) ;
  102. LstMPres = ET LstMPres MaxPr_ii ; LstMCisa = ET LstMCisa MaxCi_ii ;
  103. LstMGlis = ET LstMGlis MaxDCSii ;
  104. SI (&BSICC EGA 1);
  105. ContStat = BOITE_US.'STATUT_DE_CONTACT'. Inc_ii ;
  106. CHPLongE = BOITE_US.'AIRE_DE_CONTACT_NODALE'. Inc_ii ;
  107. CHPOCoAr = ContStat * CHPLongE ;
  108. ValCoAre = EXTR CHPOCoAr 'VALE' ;
  109. ContArea = 0. ;
  110. REPE BSOMM (DIME ValCoAre) ;
  111. CArea_jj = EXTR ValCoAre (&BSOMM) ;
  112. ContArea = ContArea + CArea_jj ;
  113. FIN BSOMM ;
  114.  
  115. PressCum = EXTR PrfPress 'ORDO' ;
  116. CisaiCum = EXTR PrfCisai 'ORDO' ;
  117. SINON ;
  118. PressCum = PressCum + (EXTR PrfPress 'ORDO') ;
  119. CisaiCum = CisaiCum + (EXTR PrfCisai 'ORDO') ;
  120. FINSI ;
  121.  
  122. FIN BSICC ;
  123.  
  124. MaxPress = MAXI LstMPres ; MaxCisai = MAXI LstMCisa ;
  125. yPresMoy = PressCum / NbrIncCC ;
  126. yCisaMoy = CisaiCum / NbrIncCC ;
  127. xAbsc = EXTR PrfPress 'ABSC' ;
  128. PressMoy = EVOL 'MANU' 'Absc' xAbsc 'Press. Contact' yPresMoy ;
  129. CisaiMoy = EVOL 'MANU' 'Absc' xAbsc 'Cisai. Contact' yCisaMoy ;
  130. BOITE_US.'EVO_PRESSION_MOYENNE_SUR_CYCLE' . NCNECC = PressMoy ;
  131. BOITE_US.'EVO_CISAILLEMENT_MOYEN_SUR_CYCLE' . NCNECC = CisaiMoy ;
  132.  
  133. VolUsCyc = INTG EvNouvUs ;
  134. VolUsTot = INTG EvCumuUs ;
  135. ECycFret = INTG CyclFret ;
  136. F_N_CyFr = EXTR CyclFret 'ORDO'; Dlt_CyFr = EXTR CyclFret 'ABSC';
  137. Ampl_F_N = (MAXI F_N_CyFr) - (MINI F_N_CyFr) ;
  138. Ampl_Dlt = (MAXI Dlt_CyFr) - (MINI Dlt_CyFr) ;
  139. DltG_Est = ECycFret / 2. / Ampl_F_N ;
  140. DltT_Est = (Ampl_Dlt / 2.) - DltG_Est ;
  141. EdSurCyc = INTG EvEnDCyc ;
  142. EdTotale = INTG EvEnDTot ;
  143.  
  144. * Section de concatenation des listes et de creation des evolutions a sauvegarde
  145. LstNCN = ET LstNCN NCNECC ;
  146. Lst0NCN = 0 ET LstNCN ;
  147. * Nombre de Cycle Reel Equivalent
  148. NCRE = NCRE + BETA ;
  149. LstNCRE = ET LstNCRE NCRE ;
  150. Lst0NCRE = 0 ET LstNCRE ;
  151. LstDltaG = ET LstDltaG DltG_Est ;
  152. LstDltaT = ET LstDltaT DltT_Est ;
  153. LstEdPC = ET LstEdPC EdSurCyc ;
  154. LstEdTot = ET LstEdTot EdTotale ;
  155. LstVolUs = ET LstVolUs VolUsTot ;
  156. LstVUsPC = ET LstVUsPC VolUsCyc ;
  157. LstPrMax = ET LstPrMax MaxPress ;
  158. LstCiMax = ET LstCiMax MaxCisai ;
  159. LstCArea = ET LstCArea ContArea ;
  160.  
  161. * => EVOLS
  162. TxtNCRE = 'Nb. Cyc. Reels' ; TxtNCN = 'Cyc. Num.' ;
  163. * Energie dissipee par cycle numerique
  164. EvEdByCN = EVOL 'MANU' 'LEGE' 'En Dis Par Cyc. Num.' TxtNCN LstNCN
  165. 'Ener. Diss. /Cycl.' LstEdPC ;
  166. * Energie equivalente dissipee totale
  167. EvEnDisT = EVOL 'MANU' TxtNCRE Lst0NCRE 'Ener. Diss. Totale' LstEdTot;
  168. EvEnDisC = EVOL 'MANU' TxtNCRE LstNCRE 'Ener. Diss. / Cyc' LstEdPC ;
  169. EvVUsCRE = EVOL 'MANU' TxtNCRE Lst0NCRE 'Vol. Use Cumule' LstVolUs;
  170. EvVUsEdT = EVOL 'MANU' 'En. Diss. Totale' LstEdTot
  171. 'Vol. Use Cumule' LstVolUs ;
  172. TxtDG = 'Delta G (mm)' ; TxtDT = 'Delta T (mm)' ;
  173. EvDtGCRE = EVOL 'BLEU' 'MANU' TxtNCRE LstNCRE TxtDG LstDltaG ;
  174. EvDltGCN = EVOL 'VERT' 'MANU' TxtNCN LstNCN TxtDG LstDltaG ;
  175. EvDtTCRE = EVOL 'ROUG' 'MANU' TxtNCRE LstNCRE TxtDT LstDltaT ;
  176. EvDltTCN = EVOL 'ORAN' 'MANU' TxtNCN LstNCN TxtDT LstDltaT ;
  177. EvMaxPre = EVOL 'VERT' 'MANU' TxtNCN LstNCN 'Pression Max' LstPrMax ;
  178. EvMaxCis = EVOL 'ROUG' 'MANU' TxtNCN LstNCN 'Cisaill. Max' LstCiMax ;
  179. EvCoArea = EVOL 'VERT' 'MANU' TxtNCN LstNCN 'Aire de contact'
  180. LstCArea;
  181.  
  182. EvMaxDCS = EVOL 'BLEU' 'MANU' 'Tps cycle' LstTpsCC
  183. 'Max Gliss.' LstMGlis ;
  184.  
  185. * Section d'enregistrement
  186. BOITE_US.'LISTE_NUMERO_CYCLE_NUMERIQUE' = LstNCN ;
  187. BOITE_US.'LISTE_NOMBRE_CYCLES_REELS_EQUIVALENT' = LstNCRE ;
  188. BOITE_US.'LISTE_VOLUME_USE_CUMULE' = LstVolUs ;
  189. BOITE_US.'LISTE_VOLUME_USE_PAR_CYCLE' = LstVUsPC ;
  190. BOITE_US.'LISTE_ENERGIE_DISSIPEE_PAR_CYCLE_NUM' = LstEdPC ;
  191. BOITE_US.'LISTE_ENERGIE_DISSIPEE_TOTALE' = LstEdTot ;
  192. BOITE_US.'NOMBRE_CYCLES_REELS_EQUIVALENT' = NCRE ;
  193. BOITE_US.'LISTE_DELTA_G_ESTIMES' = LstDltaG ;
  194. BOITE_US.'LISTE_DELTA_T_ESTIMES' = LstDltaT ;
  195. BOITE_US.'LISTE_PRESSION_MAX' = LstPrMax ;
  196. BOITE_US.'LISTE_CISAILLEMENT_MAX' = LstCiMax ;
  197. BOITE_US.'LISTE_AIRE_DE_CONTACT' = LstCArea ;
  198.  
  199. BOITE_US.'EVO_ENERGIE_DISS_PAR_CYCLE_NUM' = EvEdByCN ;
  200. BOITE_US.'EVO_ENERGIE_DISS_TOTALE' = EvEnDisT ;
  201. BOITE_US.'EVO_ENERGIE_DISS_PAR_CYCLE' = EvEnDisC ;
  202. BOITE_US.'EVO_VOLUME_USE_TOTAL_VS_CYCLES_REELS_EQUIV' = EvVUsCRE ;
  203. BOITE_US.'EVO_VOLUME_USE_TOTAL_VS_ENERGIE_DISS_TOTALE' = EvVUsEdT ;
  204. BOITE_US.'EVO_DELTA_G_ESTIMES_VS_CYCLES_REELS_EQUIV' = EvDtGCRE ;
  205. BOITE_US.'EVO_DELTA_G_ESTIMES_VS_CYCLES_NUMS' = EvDltGCN ;
  206. BOITE_US.'EVO_DELTA_T_ESTIMES_VS_CYCLES_REELS_EQUIV' = EvDtTCRE ;
  207. BOITE_US.'EVO_DELTA_T_ESTIMES_VS_CYCLES_NUMS' = EvDltTCN ;
  208. BOITE_US.'EVO_PRESSION_MAX_VS_CYCLES_NUMS' = EvMaxPre ;
  209. BOITE_US.'EVO_CISAILLEMENT_MAX_VS_CYCLES_NUMS' = EvMaxCis ;
  210. BOITE_US.'EVO_AIRE_DE_CONTAC_VS_CYCLES_NUMS' = EvCoArea ;
  211.  
  212. * Enregistrement Donnees cycliques
  213. BOITE_US.'EVO_MAX_DCSLIP_VS_TEMPS_DU_CYCLE'. NCNECC = EvMaxDCS;
  214.  
  215. FINP T1 ;
  216.  
  217.  

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