Télécharger @USCALC.procedur

Retour à la liste

Numérotation des lignes :

  1. * @USCALC PROCEDUR MB234859 21/10/21 21:15:01 11111
  2. ************************************************************************
  3. * PROCEDURE @USCALC
  4. *
  5. * Cette procedure recupere les valeurs de glissement et calcule le
  6. * cisaillement, la pression de contact et la densite d'energie
  7. * dissipee sur le pas de temps, sur le cycle et totale.
  8. *
  9. * Entrees :
  10. * T1 : Table de PASAPAS
  11. * ID_BU : Entier donnant le numero de la BOITE D'USURE a considerer
  12. *
  13. * Sortie :
  14. * T1 : Table de PASAPAS contenant les champs calcules
  15. *
  16. * Appelee par @USURE
  17. *
  18. ************************************************************************
  19. DEBP @USCALC T1*'TABLE' ID_BU*'ENTIER';
  20. *
  21. *----------------------------------------------------------------------*
  22. * - LIEN ENTRE MULT. DE LAGRANGE DE CONTACT ET DE FROTTEMENT *
  23. *----------------------------------------------------------------------*
  24. BOITE_US = T1.'BOITES_USURE' ;
  25. *
  26. 'SI' ('NON' ('EXIS' (BOITE_US. ID_BU) 'MULT_CONT'));
  27. *
  28. * Maillage de contact-frottement
  29. MODC = 'EXTR' T1.'MODELE' 'FORM' 'CONTACT' ;
  30. MFRO = 'EXTR' MODC 'MAIL' ;
  31. *
  32. NODEF = 'NBNO' (MFRO 'ELEM' 1) ;
  33. NBELT = 'NBEL' MFRO ;
  34. *
  35. MLIEN = 'VIDE' 'MAILLAGE'/'SEG2' ;
  36. MCONT = 'VIDE' 'MAILLAGE'/'POI1' ;
  37. 'REPE' BCL NBELT ;
  38. ELZ = MFRO 'ELEM' &BCL ;
  39. PCONT = ELZ 'POIN' 1 1 ;
  40. PFROT = ELZ 'POIN' NODEF 1 ;
  41. MAIZ = 'MANU' 'SEG2' PCONT PFROT ;
  42. 'SI' (BOITE_US.'INFOS'.'ITRID') ;
  43. PFRO2 = ELZ 'POIN' (NODEF - 1) 1 ;
  44. MAIZ = MAIZ 'ET' ('MANU' 'SEG2' PCONT PFRO2) ;
  45. 'FINSI' ;
  46. MLIEN = MLIEN 'ET' MAIZ ;
  47. MCONT = MCONT 'ET' PCONT ;
  48. 'FIN' BCL ;
  49. *
  50. MLIEN = 'UNIQ' MLIEN ;
  51. MCONT = 'UNIQ' MCONT ;
  52. *
  53. BOITE_US. ID_BU .'MULT_CONT' = MCONT ;
  54. BOITE_US. ID_BU .'CONT_FROT' = MLIEN ;
  55. 'FINSI';
  56. *
  57. MCONT = BOITE_US. ID_BU .'MULT_CONT' ;
  58. MLIEN = BOITE_US. ID_BU .'CONT_FROT' ;
  59. *
  60. *----------------------------------------------------------------------*
  61. * - STATUT DES CONDITIONS UNILATERALES (CONTACT ET FROTTEMENT) *
  62. *----------------------------------------------------------------------*
  63. WTAB = T1.'WTABLE' ;
  64. * Mult. de Lagrange associes aux CL unil actives (contact et frottement)
  65. CLUA = 'EXTR' WTAB.'RIBLO_M' 'MAIL' 'MULT' ;
  66. * Mult. de Lagrange associes aux CL de contact actives
  67. MLCA = CLUA 'INTE' MCONT ;
  68. *
  69. * Mult. de Lagrange de frottement associes a ceux de contact actifs
  70. MLFR = 'VIDE' 'MAILLAGE'/'POI1';
  71. 'REPE' BCL ('NBNO' MLCA) ;
  72. PZ = MLCA 'POIN' &BCL ;
  73. ELZ = MLIEN 'ELEM' 'APPUYE' 'LARGEMENT' PZ ;
  74. 'REPE' BCL2 ('NBEL' ELZ) ;
  75. ELTMP = ELZ 'ELEM' &BCL2 ;
  76. PFROT = ELTMP 'POIN' 2 1 ;
  77. MLFR = MLFR 'ET' PFROT ;
  78. 'FIN' BCL2 ;
  79. 'FIN' BCL ;
  80. *
  81. * Mult. de Lagrange associes aux CL de frottement actives
  82. MLFRA = MLFR 'INTE' CLUA ;
  83. * Mult. de Lagrange de frottement inactifs avec mult. de contact actif
  84. * MUGL = 'DIFF' MLFR MLFRA ;
  85. *
  86. *----------------------------------------------------------------------*
  87. * - REACTIONS NORMALE ET TANGENTIELLE ET GLISSEMENT *
  88. *----------------------------------------------------------------------*
  89. IGLI = FAUX ;
  90. DEPZ = T1.'ESTIMATION'.'DEPLACEMENTS' ;
  91. LCOMPF = BOITE_US.'INFOS'.'LFORCE' ;
  92. LZERO = BOITE_US.'INFOS'.'LVALE0' ;
  93. LUN = BOITE_US.'INFOS'.'LVALE1' ;
  94. LSCAL = BOITE_US.'INFOS'.'LSCAL' ;
  95. SUR_APPL = BOITE_US. ID_BU .'SURFACE_APPLICATION' ;
  96. CHPTUN = 'MANU' 'CHPO' SUR_APPL LCOMPF LUN 'NATURE' 'DISCRET' ;
  97. ForceN = 'MANU' 'CHPO' SUR_APPL LCOMPF LZERO 'NATURE' 'DISCRET' ;
  98. ForceT = 'MANU' 'CHPO' SUR_APPL LCOMPF LZERO 'NATURE' 'DISCRET' ;
  99. Glismt = 'MANU' 'CHPO' SUR_APPL LCOMPF LZERO 'NATURE' 'DISCRET' ;
  100. Chpres = 'MANU' 'CHPO' SUR_APPL LCOMPF LZERO 'NATURE' 'DISCRET' ;
  101. MTMP = 'VIDE' 'MAILLAGE' ;
  102. 'REPE' BCL ('NBNO' MLFR) ;
  103. PFROT = MLFR 'POIN' &BCL ;
  104. ELTCF = MLIEN 'ELEM' 'APPUYE' 'LARGEMENT' PFROT ;
  105. PCONT = ELTCF 'POIN' 1 1 ;
  106. *- Reaction tangentielle
  107. Rtang = 'REDU' ('REAC' WTAB.'CLIM' ('REDU' DEPZ PFROT)) SUR_APPL ;
  108. ForceT = ForceT 'ET' Rtang ;
  109. *- Reaction normale
  110. Rnorm = 'REDU' ('REAC' WTAB.'CLIM' ('REDU' DEPZ PCONT)) SUR_APPL ;
  111. ForceN = ForceN 'ET' Rnorm ;
  112. MTMP = MTMP 'ET' ('EXTR' Rnorm 'MAIL') ;
  113. *- Glissement eventuel
  114. 'SI' ('NON' ('DANS' PFROT MLFRA)) ;
  115. IGLI = VRAI ;
  116. *
  117. PscRtang = 'PSCA' Rtang Rtang LCOMPF LCOMPF ;
  118. NorRtang = PscRtang ** 0.5 ;
  119. Dirgliss = Rtang '/' NorRtang LCOMPF LSCAL LCOMPF;
  120. Valgliss = Dirgliss '*' ('EXTR' WTAB.'DFLX' 'FLX' PFROT) ;
  121. Valgliss = 'CHAN' 'ATTRIBUT' Valgliss 'NATURE' 'DISCRET' ;
  122. *
  123. * Certains noeuds apparaissent dans plusieurs conditions de contact/
  124. * frottement, il faut alors moyenner les valeurs de glissement
  125. Mglis = 'EXTR' Rtang 'MAIL' ;
  126. CHMZ = 'MANU' 'CHPO' Mglis LCOMPF LUN 'NATURE' 'DISCRET' ;
  127. Chpres = Chpres 'ET' CHMZ ;
  128. Glismt = Glismt 'ET' Valgliss ;
  129. 'FINSI' ;
  130. 'FIN' BCL ;
  131. BOITE_US. ID_BU .'PRESSION_NBF' = BOITE_US. ID_BU .'PRESSION_NBF'
  132. + ('MANU' 'CHPO' MTMP 1 'SCAL' 1. 'NATURE' 'DISCRET') ;
  133. *
  134. * Moyenner les valeurs de Glismt
  135. Chmoye = ('MASQ' Chpres 'EGAL' 0.) 'ET' Chpres ;
  136. Glismt = Glismt '/' Chmoye LCOMPF LCOMPF LCOMPF ;
  137. *
  138. * Usure bilaterale : equireparition de l'energie dissipee
  139. * -> a prendre en compte sur le coefficient d'usure
  140. * pas de coefficient ajoute sur les valeurs de glissement
  141. *
  142. *----------------------------------------------------------------------*
  143. * - PRESSION DE CONTACT ET CISAILLEMENT *
  144. *----------------------------------------------------------------------*
  145. XX = 1. '/' 2 ;
  146. 'SI' (BOITE_US.'INFOS'.'ITRID') ;
  147. XX = 1. '/' 4. ;
  148. 'FINSI' ;
  149. CONF0 = 'FORM' ;
  150. 'FORM' DEPZ ;
  151. SurfElt = 'MANU' 'CHPO' SUR_APPL 1 'SCAL' 0. 'NATURE' 'DISCRET' ;
  152. 'REPE' BCL ('NBEL' SUR_APPL) ;
  153. ELTZ = SUR_APPL 'ELEM' &BCL ; SELT = 'MESU' ELTZ ;
  154. CHPZ = 'MANU' 'CHPO' ELTZ 1 'SCAL' (SELT '*' XX) 'NATURE' 'DISCRET';
  155. SurfElt = SurfElt 'ET' CHPZ ;
  156. 'FIN' BCL ;
  157. 'FORM' CONF0 ;
  158. BOITE_US. ID_BU .'LELT' = 'MINI' SurfElt ;
  159. *
  160. * Pression de contact
  161. FNsurf = ForceN '/' SurfElt LCOMPF LSCAL LCOMPF ;
  162. PscFNsur = 'PSCA' FNsurf FNsurf LCOMPF LCOMPF ;
  163. Cpress = PscFNsur ** 0.5 ;
  164. CPress = 'CHAN' 'ATTRIBUT' Cpress 'NATURE' 'DISCRET' ;
  165. *
  166. * Cisaillement
  167. FTsurf = ForceT '/' SurfElt LCOMPF LSCAL LCOMPF ;
  168. PscFTsur = 'PSCA' FTsurf FTsurf LCOMPF LCOMPF ;
  169. Cshear = PscFTsur ** 0.5 ;
  170. CShear = 'CHAN' 'ATTRIBUT' CShear 'NATURE' 'DISCRET' ;
  171. *
  172. * Glissement
  173. PscGlis = 'PSCA' Glismt Glismt LCOMPF LCOMPF ;
  174. NorGlis = PscGlis ** 0.5 ;
  175. NorGlis = 'CHAN' 'ATTRIBUT' NorGlis 'NATURE' 'DISCRET' ;
  176. *
  177. *----------------------------------------------------------------------*
  178. * - DENSITE D ENERGIE DISSIPEE PAR FROTTEMENT *
  179. *----------------------------------------------------------------------*
  180. * Densite d energie dissipee sur le pas de temps
  181. EnDisInc = 'MANU' 'CHPO' SUR_APPL 1 'ED' 0. 'NATURE' 'DISCRET' ;
  182. 'SI' IGLI ;
  183. EnDisInc = 'PSCA' FTsurf Glismt LCOMPF LCOMPF ;
  184. EnDisInc = 'CHAN' 'COMP' ('ABS' EnDisInc) 'ED' ;
  185. 'FINSI';
  186. *
  187. * Densite d energie dissipee sur le cycle
  188. EnDisCyc = BOITE_US. ID_BU .'DENS_ENER_DISS_CYCLE' ;
  189. EnDisCyc = EnDisCyc + EnDisInc ;
  190. *
  191. * Densite d energie dissipee totale (ensemble des cycles)
  192. EnDisTot = BOITE_US. ID_BU .'DENS_ENER_DISS_TOTALE' ;
  193. EnDisTot = EnDisTot + EnDisInc ;
  194. *
  195. * Trace d evolutions le long de la zone de contact
  196. 'SI' (BOITE_US.'INFOS'.'TRACE_DEBUG') ;
  197. 'SI' ('NON' (BOITE_US.'INFOS'.'ITRID')) ;
  198. *
  199. EvCPress = 'EVOL' 'BLEU' 'CHPO' CPress SUR_APPL ;
  200. EvCPress = 'EXTR' EvCPress 'COUR' 1 ;
  201. EvCPress = 'CHAN' EvCPress 'LEGE' 'Pressure' ;
  202. *
  203. EvCShear = 'EVOL' 'ROUG' 'CHPO' CShear SUR_APPL ;
  204. EvCShear = 'EXTR' EvCShear 'COUR' 1 ;
  205. EvCShear = 'CHAN' EvCShear 'LEGE' 'Shear' ;
  206. *
  207. EvGlisse = 'EVOL' 'VERT' 'CHPO' NorGlis SUR_APPL ;
  208. EvGlisse = 'EXTR' EvGlisse 'COUR' 1 ;
  209. EvGlisse = 'CHAN' EvGlisse 'LEGE' 'Glissement' ;
  210. *
  211. EvDltEnD = 'EVOL' 'JAUN' 'CHPO' EnDisInc SUR_APPL ;
  212. EvDltEnD = 'EXTR' EvDltEnD 'COUR' 1 ;
  213. EvDltEnD = 'CHAN' EvDltEnD 'LEGE' 'Energie_dis_Inc' ;
  214. *
  215. EvEnDCyc = 'EVOL' 'GRIS' 'CHPO' EnDisCyc SUR_APPL ;
  216. EvEnDCyc = 'EXTR' EvEnDCyc 'COUR' 1 ;
  217. EvEnDCyc = 'CHAN' EvEnDCyc 'LEGE' 'Energie_dis_Cyc' ;
  218. *
  219. 'DESS' (EvCPress 'ET' EvCShear 'ET' (500000. * EvGlisse)
  220. 'ET' (100. * EvDltEnD) 'ET' (100. * EvEnDCyc)) 'LEGE' 'NCLK' ;
  221. *
  222. 'FINSI' ;
  223. 'FINSI' ;
  224. *
  225. *----------------------------------------------------------------------*
  226. * - CYCLE D'USURE (FORCE_TANGENTIELLE EN FONCTION DU DEPLACEMENT) *
  227. *----------------------------------------------------------------------*
  228. LstDelta = BOITE_US. ID_BU .'DELTAS' ;
  229. Delta_ii = 'EXTR' DEPZ BOITE_US.'INFOS'.'COMP_DEPI'
  230. BOITE_US.'INFOS'.'PTSZ_DEPI' ;
  231. LstDelta = LstDelta 'ET' Delta_ii ;
  232. *
  233. LstFTang = BOITE_US. ID_BU .'FORCES_TANGENTIELLES' ;
  234. FtangRes = 'PSCA' ForceT BOITE_US. ID_BU .'DIRE_REACTION'
  235. LCOMPF LCOMPF ;
  236. FTangRes = 'SOMT' FTangRes ;
  237. LstFTang = LstFTang 'ET' FTangRes ;
  238. *
  239. 'SI' (BOITE_US.'INFOS'.'FINCYCLE') ;
  240. CycActu = BOITE_US.'INFOS'.'INDICE_CYCLE_ACTUEL' ;
  241. CyclFret = 'EVOL' 'ROUG' 'MANU' 'Deplacement' LstDelta
  242. 'Force_Tangentielle' LstFTang ;
  243. EnteteCF = 'CHAI' 'Cycle_de_fretting_n: ' CycActu FORMAT '(I2)' ;
  244. CyclFret = 'CHAN' CyclFret 'LEGE' EnteteCF ;
  245. BOITE_US. ID_BU .'CYCLE_DE_FRETTING'. CycActu = CyclFret ;
  246. *
  247. * Reinitialisation (le dernier point est aussi premier cycle suivant)
  248. LstDelta = 'PROG' Delta_ii ;
  249. LstFTang = 'PROG' FTangRes ;
  250. *
  251. 'SI' (BOITE_US.'INFOS'.'TRACE_DEBUG') ;
  252. TabDess = TABL ;
  253. TabDess. 1 = 'TIRC MARQ CROI' ;
  254. 'DESS' CyclFret TabDess 'GRIL' 'LEGE' ;
  255. 'FINSI' ;
  256. 'FINSI' ;
  257. *
  258. *----------------------------------------------------------------------*
  259. * - STOCKAGE DES RESULTATS - DENS_ENER_DISS_CYCLE UTILSE DANS USPROF *
  260. *----------------------------------------------------------------------*
  261. IncActu = BOITE_US.'INFOS'.'INDICE_INCREMENT_ACTUEL' ;
  262. BOITE_US. ID_BU .'GLISSEMENT'. IncActu = 'ABS' NorGlis ;
  263. BOITE_US. ID_BU .'PRESSION_CONTACT'. IncActu = CPress ;
  264. BOITE_US. ID_BU .'CISAILLEMENT'. IncActu = 'ABS' CShear ;
  265. BOITE_US. ID_BU .'DENS_ENER_DISS_CYCLE' = EnDisCyc ;
  266. BOITE_US. ID_BU .'DENS_ENER_DISS_TOTALE' = EnDisTot ;
  267. BOITE_US. ID_BU .'DELTAS' = LstDelta ;
  268. BOITE_US. ID_BU .'FORCES_TANGENTIELLES' = LstFTang ;
  269. *
  270. FINP T1 ;
  271.  
  272.  

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