Télécharger uscalc.procedur

Retour à la liste

Numérotation des lignes :

  1. * USCALC PROCEDUR MB234859 25/05/05 21:15:10 12260
  2. ************************************************************************
  3. * PROCEDURE USCALC
  4. *
  5. * Procedure qui determine, pour chaque surface a user, le cisaillement,
  6. * la pression de contact et la densite d'energie dissipee sur le pas de
  7. * temps, sur le cycle courant et totale.
  8. * Au dernier increment de chaque cycle, elle determine si les pas de
  9. * temps doivent etre recalcules a partir du cycle d'usure obtenu.
  10. *
  11. * Entrees :
  12. * T1 : Table de PASAPAS
  13. *
  14. * Remarque : pour l'usure bilaterale aucun coefficient n'est ajoute
  15. * dans le calcul. L'hypothese d'equireparition de l'energie
  16. * dissipee est a prendre en compte sur le coefficient d'usure
  17. *
  18. * Appelee par USURE
  19. *
  20. ************************************************************************
  21. 'DEBP' USCALC T1*'TABLE' ;
  22. *
  23. BOITE_US = T1.'BOITES_USURE' ;
  24. IncActu = BOITE_US.'INFOS'.'INDICE_INCREMENT_ACTUEL' ;
  25. DTps = T1.'WTABLE'.'DT' ;
  26. *-----------------------------------------------------------------------
  27. * - STATUT DES CONDITIONS UNILATERALES (CONTACT ET FROTTEMENT)
  28. *-----------------------------------------------------------------------
  29. * Resultats issus de UNPAS
  30. WCOF = T1.'WTABLE'.'POST_COFR';
  31. * Mult. de Lagrange associes aux CL unil actives (contact et frottement)
  32. CLUA = 'EXTR' WCOF.'MULT_SOLUT' 'MAIL' ;
  33. * Mult. de Lagrange associes aux CL de contact actives
  34. MLCA = CLUA 'INTE' BOITE_US.'INFOS'.'MULT_CONT';
  35. *
  36. * Mult. de Lagrange de frottement associes a ceux de contact actifs
  37. LCONT = 'POSI' MLCA 'DANS' BOITE_US.'INFOS'.'MULT_CONT';
  38. MLFR = BOITE_US.'INFOS'.'MULT_FROT' 'ELEM' LCONT ;
  39. 'SI' BOITE_US.'INFOS'.'ITRID' ;
  40. MLF2 = BOITE_US.'INFOS'.'MULT_FRO2' 'ELEM' LCONT ;
  41. MLFR = MLFR 'ET' MLF2 ;
  42. 'FINSI' ;
  43. *
  44. * Mult. de Lagrange associes aux CL de frottement actives
  45. **MLFRA = MLFR 'INTE' CLUA ;
  46. * Mult. de Lagrange de frottement inactifs avec mult. de contact actif
  47. * MUGL = 'DIFF' MLFR MLFRA ;
  48. *-----------------------------------------------------------------------
  49. DEPZ = T1.'ESTIMATION'.'DEPLACEMENTS' ;
  50. LXZ = WCOF.'MULT_SOLUT' ;
  51. WCL = WCOF.'RIGI_UNILA' ;
  52. LCF = BOITE_US.'INFOS'.'LFORCE' ;
  53. LSCA = BOITE_US.'INFOS'.'LSCAL' ;
  54. *
  55. 'REPE' BU BOITE_US.'INFOS'.'N_BOITES' ;
  56. *
  57. * --------------------------------------------------------------------
  58. * Initialisation au debut de chaque nouveau cycle
  59. 'SI' ('EGA' IncActu 1) ;
  60. BOITE_US. &BU .'PRESSION_CONTACT' = 'TABLE' 'ESCLAVE' ;
  61. BOITE_US. &BU .'CISAILLEMENT' = 'TABLE' 'ESCLAVE' ;
  62. BOITE_US. &BU .'DENS_ENER_DISS' = 'TABLE' 'ESCLAVE' ;
  63. BOITE_US. &BU .'DENS_ENER_DISS_CYCLE' = BOITE_US. &BU .'CZERO' ;
  64. 'FINSI' ;
  65. *
  66. * --------------------------------------------------------------------
  67. * Surface associee a chaque element
  68. SUR_APPL = BOITE_US. &BU .'SURFACE_APPLICATION' ;
  69. XX = 1. '/' 2 ;
  70. 'SI' BOITE_US.'INFOS'.'ITRID' ;
  71. XX = 1. '/' 4. ;
  72. 'FINSI' ;
  73. CONF0 = 'FORM' ;
  74. 'FORM' DEPZ ;
  75. SurfElt = 'MANU' 'CHPO' SUR_APPL 1 'SCAL' 0. 'NATURE' 'DISCRET' ;
  76. 'REPE' BCL ('NBEL' SUR_APPL) ;
  77. ELTZ = SUR_APPL 'ELEM' &BCL ; SELT = 'MESU' ELTZ ;
  78. CHPZ = 'MANU' 'CHPO' ELTZ 1 'SCAL' (SELT '*' XX) 'NATURE' 'DISCRET';
  79. SurfElt = SurfElt 'ET' CHPZ ;
  80. 'FIN' BCL ;
  81. 'FORM' CONF0 ;
  82. BOITE_US. &BU .'LELT' = 'MINI' SurfElt ;
  83. *
  84. * --------------------------------------------------------------------
  85. * Reactions normale et tangentielle et glissement
  86. EnDisInc = BOITE_US. &BU .'CZERO' ;
  87. 'REPE' BCL ('NBNO' MLFR) ;
  88. *
  89. * Multiplicateur associee a la condition de frottement
  90. PFROT = MLFR 'POIN' &BCL ;
  91. *
  92. * Reaction tangentielle
  93. Rtang = 'REDU' ('REAC' WCL ('REDU' LXZ PFROT)) SUR_APPL ;
  94. Rtnor = 'PSCA' Rtang Rtang LCF LCF ;
  95. Cshear = (Rtnor ** 0.5) '/' SurfElt ;
  96. CShear = 'CHAN' 'ATTRIBUT' CShear 'NATURE' 'DISCRET' ;
  97. *
  98. * Glissement eventuel
  99. Vglis = 'EXTR' WCOF.'GLISSEMENT' 'FLX' PFROT ;
  100. Mglis = 'EXTR' Rtang 'MAIL' ;
  101. Vglis = 'MANU' 'CHPO' Mglis 1 'SCAL' Vglis 'NATURE' 'DISCRET' ;
  102. *
  103. * Densite d'energie dissipee par frottement
  104. EnerDiss = 'ABS' (CShear '*' Vglis) ;
  105. EnerDiss = 'CHAN' 'ATTRIBUT' EnerDiss 'NATURE' 'DISCRET' ;
  106. EnDisInc = EnDisInc '+' EnerDiss ;
  107. *
  108. 'FIN' BCL ;
  109. *
  110. * --------------------------------------------------------------------
  111. * Pression de contact
  112. ForceN = 'REDU' ('REAC' WCL ('REDU' LXZ MLCA)) SUR_APPL ;
  113. SigmaN = ForceN '/' SurfElt LCF LSCA LCF ;
  114. PscaSN = 'PSCA' SigmaN SigmaN LCF LCF ;
  115. Cpress = PscaSN ** 0.5 ;
  116. CPress = 'CHAN' 'ATTRIBUT' Cpress 'NATURE' 'DISCRET' ;
  117. *
  118. * Cisaillement
  119. ForceT = 'REDU' ('REAC' WCL ('REDU' LXZ MLFR)) SUR_APPL ;
  120. SigmaT = ForceT '/' SurfElt LCF LSCA LCF ;
  121. PscaST = 'PSCA' SigmaT SigmaT LCF LCF ;
  122. Cshear = PscaST ** 0.5 ;
  123. CShear = 'CHAN' 'ATTRIBUT' CShear 'NATURE' 'DISCRET' ;
  124. *
  125. * --------------------------------------------------------------------
  126. * Trace le long de la zone de contact
  127. 'SI' BOITE_US.'INFOS'.'TRACE_DEBUG' ;
  128. 'SI' ('NON' BOITE_US.'INFOS'.'ITRID') ;
  129. *
  130. ECPress = 'EVOL' 'BLEU' 'CHPO' CPress SUR_APPL ;
  131. ECPress = 'EXTR' ECPress 'COUR' 1 ;
  132. ECPress = 'CHAN' ECPress 'LEGE' 'Pressure' ;
  133. *
  134. ECShear = 'EVOL' 'ROUG' 'CHPO' CShear SUR_APPL ;
  135. ECShear = 'EXTR' ECShear 'COUR' 1 ;
  136. ECShear = 'CHAN' ECShear 'LEGE' 'Shear' ;
  137. *
  138. EvDltEnD = 'EVOL' 'JAUN' 'CHPO' EnDisInc SUR_APPL ;
  139. EvDltEnD = 'EXTR' EvDltEnD 'COUR' 1 ;
  140. EvDltEnD = 'CHAN' EvDltEnD 'LEGE' 'Energie_dis_Inc' ;
  141. *
  142. DESS (ECPress 'ET' ECShear 'ET' (100. * EvDltEnD)) 'LEGE' 'NCLK' ;
  143. *
  144. 'FINSI' ;
  145. 'FINSI' ;
  146. *
  147. * --------------------------------------------------------------------
  148. * Cycle d'usure (force tangentielle en fonction du deplacement)
  149. LstDelta = BOITE_US. &BU .'DELTAS' ;
  150. Delta_ii = 'EXTR' DEPZ BOITE_US.'INFOS'.'COMP_DEPI'
  151. BOITE_US.'INFOS'.'PTSZ_DEPI' ;
  152. LstDelta = LstDelta 'ET' Delta_ii ;
  153. *
  154. LstFTang = BOITE_US. &BU .'FORCES_TANGENTIELLES' ;
  155. FtangRes = 'PSCA' ForceT BOITE_US. &BU .'DIRE_REACTION' LCF LCF ;
  156. FTangRes = 'SOMT' FTangRes ;
  157. LstFTang = LstFTang 'ET' FTangRes ;
  158. *
  159. * --------------------------------------------------------------------
  160. * Stockage des resultats
  161. BOITE_US. &BU .'PRESSION_CONTACT'. IncActu = DTps '*' CPress ;
  162. BOITE_US. &BU .'CISAILLEMENT'. IncActu = DTps '*' ('ABS' CShear);
  163. BOITE_US. &BU .'DENS_ENER_DISS'. IncActu = EnDisInc ;
  164. BOITE_US. &BU .'DELTAS' = LstDelta ;
  165. BOITE_US. &BU .'FORCES_TANGENTIELLES' = LstFTang ;
  166. *
  167. 'REMP' BOITE_US. &BU .'PRESSION_MAX_INC' IncActu ('MAXI' CPress) ;
  168. 'REMP' BOITE_US. &BU .'CISAILLEMENT_MAX_INC' IncActu ('MAXI' CShear 'ABS') ;
  169. *
  170. * --------------------------------------------------------------------
  171. * Dernier instant du cycle actuel
  172. 'SI' ('EGA' IncActu BOITE_US.'INFOS'.'NB_INCREMENTS_PAR_CYCLE') ;
  173. *
  174. * Cumul des densites d'energie dissipee par frottement
  175. EnDisCyc = 'ETG' BOITE_US. &BU .'DENS_ENER_DISS' ;
  176. BOITE_US. &BU .'DENS_ENER_DISS_CYCLE' = EnDisCyc ;
  177. BOITE_US. &BU .'DENS_ENER_DISS_TOTALE' =
  178. BOITE_US. &BU .'DENS_ENER_DISS_TOTALE' + EnDisCyc ;
  179. *
  180. * Vitesse d'usure sur le cycle (utilise dans USEXPL/USIMPL)
  181. ALPHA = BOITE_US. &BU .'COEFFICIENT_USURE' ;
  182. VitUsure = ALPHA '*' EnDisCyc ;
  183. BOITE_US. &BU .'VITESSE_USURE' = VitUsure ;
  184.  
  185. CycActu = BOITE_US.'INFOS'.'INDICE_CYCLE_ACTUEL' ;
  186. CyclFret = 'EVOL' 'ROUG' 'MANU' 'Deplacement' LstDelta
  187. 'Force_Tangentielle' LstFTang ;
  188. EnteteCF = 'CHAI' 'Cycle_de_fretting_n: ' CycActu FORMAT '(I2)' ;
  189. CyclFret = 'CHAN' CyclFret 'LEGE' EnteteCF ;
  190. BOITE_US. &BU .'CYCLE_DE_FRETTING'. CycActu = CyclFret ;
  191. *
  192. 'SI' BOITE_US.'INFOS'.'TRACE_DEBUG' ;
  193. TabDess = TABL ;
  194. TabDess. 1 = 'TIRC MARQ CROI' ;
  195. 'DESS' CyclFret TabDess 'GRIL' 'LEGE' ;
  196. 'FINSI' ;
  197. *
  198. * Faut-il redeterminer les pas de temps
  199. Ampl_F_N = ('MAXI' LstFTang) '-' ('MINI' LstFTang) ;
  200. Ampl_Dlt = ('MAXI' LstDelta) '-' ('MINI' LstDelta) ;
  201. ECycFret = 'ABS' ('INTG' CyclFret) ;
  202. DltG_Est = ECycFret / 2. / Ampl_F_N ;
  203. DltT_Est = (Ampl_Dlt / 2.) - DltG_Est ;
  204. BOITE_US.'INFOS'.'DELTAP' = BOITE_US.'INFOS'.'DELTA_T' ;
  205. BOITE_US.'INFOS'.'DELTA_T' = DltT_Est ;
  206. *
  207. 'SI' (('EGA' &BU 1) 'ET' BOITE_US.'INFOS'.'CALCUL_PAS');
  208. ECycGtot = Ampl_F_N * Ampl_Dlt ;
  209. BOITE_US.'INFOS'.'AJUSTE_PAS' = FAUX ;
  210. * Uniquement si regime de glissement total
  211. 'SI' ((ECycFret / ECycGtot) '>' 0.2) ;
  212. BOITE_US.'INFOS'.'AJUSTE_PAS' = VRAI ;
  213. 'SI' ('NEG' CycActu 1) ;
  214. ******** LDltTPre = BOITE_US. &BU .'DELTA_T' ;
  215. ******** DltTPre = 'EXTR' LDltTPre ('DIME' LDltTPre) ;
  216. DltTPre = BOITE_US.'INFOS'.'DELTAP' ;
  217. VarDltT = 'ABS' ((DltT_Est - DltTPre) / DltTPre) ;
  218. BOITE_US.'INFOS'.'AJUSTE_PAS' = (VarDltT '>' 0.1) ;
  219. 'FINSI' ;
  220. CHAZ = 'CHAI' 'Pas de temps recalcules :' ;
  221. CHAZ = 'CHAI' CHAZ BOITE_US.'INFOS'.'AJUSTE_PAS' ;
  222. 'MESS' CHAZ ;
  223. 'FINSI' ;
  224. 'FINSI' ;
  225. *
  226. * Reinitialisation (le dernier point est aussi premier cycle suivant)
  227. BOITE_US. &BU .'DELTAS' = 'PROG' Delta_ii ;
  228. BOITE_US. &BU .'FORCES_TANGENTIELLES' = 'PROG' FTangRes ;
  229. 'FINSI' ;
  230. *
  231. 'FIN' BU ;
  232. *-----------------------------------------------------------------------
  233. 'FINP' ;
  234.  
  235.  

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