Télécharger @uscalc.procedur

Retour à la liste

Numérotation des lignes :

  1. * @USCALC PROCEDUR MB234859 23/12/21 21:15:04 11815
  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. WCOF = WTAB.'POST_COFR';
  65. * Mult. de Lagrange associes aux CL unil actives (contact et frottement)
  66. CLUA = 'EXTR' WCOF.'MULT_SOLUT' 'MAIL' ;
  67. * Mult. de Lagrange associes aux CL de contact actives
  68. MLCA = CLUA 'INTE' MCONT ;
  69. *
  70. * Mult. de Lagrange de frottement associes a ceux de contact actifs
  71. MLFR = 'VIDE' 'MAILLAGE'/'POI1';
  72. 'REPE' BCL ('NBNO' MLCA) ;
  73. PZ = MLCA 'POIN' &BCL ;
  74. ELZ = MLIEN 'ELEM' 'APPUYE' 'LARGEMENT' PZ ;
  75. 'REPE' BCL2 ('NBEL' ELZ) ;
  76. ELTMP = ELZ 'ELEM' &BCL2 ;
  77. PFROT = ELTMP 'POIN' 2 1 ;
  78. MLFR = MLFR 'ET' PFROT ;
  79. 'FIN' BCL2 ;
  80. 'FIN' BCL ;
  81. *
  82. * Mult. de Lagrange associes aux CL de frottement actives
  83. **MLFRA = MLFR 'INTE' CLUA ;
  84. * Mult. de Lagrange de frottement inactifs avec mult. de contact actif
  85. * MUGL = 'DIFF' MLFR MLFRA ;
  86. *
  87. *----------------------------------------------------------------------*
  88. * - REACTIONS NORMALE ET TANGENTIELLE ET GLISSEMENT *
  89. *----------------------------------------------------------------------*
  90. DEPZ = 'ENLE' T1.'ESTIMATION'.'DEPLACEMENTS' 'FLX' ;
  91. LXZ = WCOF.'MULT_SOLUT' ;
  92. LCOMPF = BOITE_US.'INFOS'.'LFORCE' ;
  93. LZERO = BOITE_US.'INFOS'.'LVALE0' ;
  94. LUN = BOITE_US.'INFOS'.'LVALE1' ;
  95. LSCAL = BOITE_US.'INFOS'.'LSCAL' ;
  96. SUR_APPL = BOITE_US. ID_BU .'SURFACE_APPLICATION' ;
  97. CHPTUN = 'MANU' 'CHPO' SUR_APPL LCOMPF LUN 'NATURE' 'DISCRET' ;
  98. ForceN = 'MANU' 'CHPO' SUR_APPL LCOMPF LZERO 'NATURE' 'DISCRET' ;
  99. ForceT = 'MANU' 'CHPO' SUR_APPL LCOMPF LZERO 'NATURE' 'DISCRET' ;
  100. Glismt = 'MANU' 'CHPO' SUR_APPL LCOMPF LZERO 'NATURE' 'DISCRET' ;
  101. Chpres = 'MANU' 'CHPO' SUR_APPL LCOMPF LZERO 'NATURE' 'DISCRET' ;
  102. MTMP = 'VIDE' 'MAILLAGE' ;
  103. 'REPE' BCL ('NBNO' MLFR) ;
  104. PFROT = MLFR 'POIN' &BCL ;
  105. ELTCF = MLIEN 'ELEM' 'APPUYE' 'LARGEMENT' PFROT ;
  106. PCONT = ELTCF 'POIN' 1 1 ;
  107. WCL = WCOF.'RIGI_UNILA' ;
  108. *- Reaction tangentielle
  109. Rtang = 'REDU' ('REAC' WCL ('REDU' LXZ PFROT)) SUR_APPL ;
  110. ForceT = ForceT 'ET' Rtang ;
  111. *- Reaction normale
  112. Rnorm = 'REDU' ('REAC' WCL ('REDU' LXZ PCONT)) SUR_APPL ;
  113. ForceN = ForceN 'ET' Rnorm ;
  114. MTMP = MTMP 'ET' ('EXTR' Rnorm 'MAIL') ;
  115. *- Glissement eventuel
  116. PscRtang = 'PSCA' Rtang Rtang LCOMPF LCOMPF ;
  117. NorRtang = PscRtang ** 0.5 ;
  118. Dirgliss = Rtang '/' NorRtang LCOMPF LSCAL LCOMPF;
  119. Valgliss = Dirgliss '*' ('EXTR' WCOF.'GLISSEMENT' 'FLX' PFROT) ;
  120. Valgliss = 'CHAN' 'ATTRIBUT' Valgliss 'NATURE' 'DISCRET' ;
  121. *
  122. * Certains noeuds apparaissent dans plusieurs conditions de contact/
  123. * frottement, il faut alors moyenner les valeurs de glissement
  124. Mglis = 'EXTR' Rtang 'MAIL' ;
  125. CHMZ = 'MANU' 'CHPO' Mglis LCOMPF LUN 'NATURE' 'DISCRET' ;
  126. Chpres = Chpres 'ET' CHMZ ;
  127. Glismt = Glismt 'ET' Valgliss ;
  128. 'FIN' BCL ;
  129. *
  130. **MTM2 = 'UNIQ' MTMP ;
  131. **CNBF = 'MANU' 'CHPO' MTM2 1 'SCAL' 1. 'NATURE' 'DISCRET' ;
  132. **'SI'('EGA' (BOITE_US.'INFOS'.'INDICE_INCREMENT_ACTUEL') 1) ;
  133. ** BOITE_US. ID_BU .'PRESSION_NBF' = CNBF ;
  134. **'SINON' ;
  135. ** BOITE_US. ID_BU .'PRESSION_NBF' = BOITE_US. ID_BU .'PRESSION_NBF' + CNBF ;
  136. **'FINSI' ;
  137. **EVT = evol vert chpo (BOITE_US. ID_BU .'PRESSION_NBF') sur_appl;
  138. **EVY = evol turq chpo CNBF sur_appl;
  139. *
  140. * Moyenner les valeurs de Glismt
  141. Chmoye = ('MASQ' Chpres 'EGAL' 0.) 'ET' Chpres ;
  142. Glismt = Glismt '/' Chmoye LCOMPF LCOMPF LCOMPF ;
  143. *
  144. * Usure bilaterale : equireparition de l'energie dissipee
  145. * -> a prendre en compte sur le coefficient d'usure
  146. * pas de coefficient ajoute sur les valeurs de glissement
  147. *
  148. *----------------------------------------------------------------------*
  149. * - PRESSION DE CONTACT ET CISAILLEMENT *
  150. *----------------------------------------------------------------------*
  151. XX = 1. '/' 2 ;
  152. 'SI' (BOITE_US.'INFOS'.'ITRID') ;
  153. XX = 1. '/' 4. ;
  154. 'FINSI' ;
  155. CONF0 = 'FORM' ;
  156. 'FORM' DEPZ ;
  157. SurfElt = 'MANU' 'CHPO' SUR_APPL 1 'SCAL' 0. 'NATURE' 'DISCRET' ;
  158. 'REPE' BCL ('NBEL' SUR_APPL) ;
  159. ELTZ = SUR_APPL 'ELEM' &BCL ; SELT = 'MESU' ELTZ ;
  160. CHPZ = 'MANU' 'CHPO' ELTZ 1 'SCAL' (SELT '*' XX) 'NATURE' 'DISCRET';
  161. SurfElt = SurfElt 'ET' CHPZ ;
  162. 'FIN' BCL ;
  163. 'FORM' CONF0 ;
  164. BOITE_US. ID_BU .'LELT' = 'MINI' SurfElt ;
  165. *
  166. * Pression de contact
  167. FNsurf = ForceN '/' SurfElt LCOMPF LSCAL LCOMPF ;
  168. PscFNsur = 'PSCA' FNsurf FNsurf LCOMPF LCOMPF ;
  169. Cpress = PscFNsur ** 0.5 ;
  170. CPress = 'CHAN' 'ATTRIBUT' Cpress 'NATURE' 'DISCRET' ;
  171. *
  172. * Cisaillement
  173. FTsurf = ForceT '/' SurfElt LCOMPF LSCAL LCOMPF ;
  174. PscFTsur = 'PSCA' FTsurf FTsurf LCOMPF LCOMPF ;
  175. Cshear = PscFTsur ** 0.5 ;
  176. CShear = 'CHAN' 'ATTRIBUT' CShear 'NATURE' 'DISCRET' ;
  177. *
  178. * Glissement
  179. PscGlis = 'PSCA' Glismt Glismt LCOMPF LCOMPF ;
  180. NorGlis = PscGlis ** 0.5 ;
  181. NorGlis = 'CHAN' 'ATTRIBUT' NorGlis 'NATURE' 'DISCRET' ;
  182. *
  183. *----------------------------------------------------------------------*
  184. * - DENSITE D ENERGIE DISSIPEE PAR FROTTEMENT *
  185. *----------------------------------------------------------------------*
  186. * Densite d energie dissipee sur le pas de temps
  187. EnDisInc = 'PSCA' FTsurf Glismt LCOMPF LCOMPF ;
  188. EnDisInc = 'CHAN' 'COMP' ('ABS' EnDisInc) 'ED' ;
  189. EnDisInc = 'CHAN' 'ATTRIBUT' EnDisInc 'NATURE' 'DISCRET' ;
  190. *
  191. * Densite d energie dissipee sur le cycle
  192. EnDisCyc = BOITE_US. ID_BU .'DENS_ENER_DISS_CYCLE' ;
  193. EnDisCyc = EnDisCyc + EnDisInc ;
  194. *
  195. * Densite d energie dissipee totale (ensemble des cycles)
  196. EnDisTot = BOITE_US. ID_BU .'DENS_ENER_DISS_TOTALE' ;
  197. EnDisTot = EnDisTot + EnDisInc ;
  198. *
  199. * Trace d evolutions le long de la zone de contact
  200. 'SI' (BOITE_US.'INFOS'.'TRACE_DEBUG') ;
  201. 'SI' ('NON' (BOITE_US.'INFOS'.'ITRID')) ;
  202. *
  203. EvCPress = 'EVOL' 'BLEU' 'CHPO' CPress SUR_APPL ;
  204. EvCPress = 'EXTR' EvCPress 'COUR' 1 ;
  205. EvCPress = 'CHAN' EvCPress 'LEGE' 'Pressure' ;
  206. *
  207. EvCShear = 'EVOL' 'ROUG' 'CHPO' CShear SUR_APPL ;
  208. EvCShear = 'EXTR' EvCShear 'COUR' 1 ;
  209. EvCShear = 'CHAN' EvCShear 'LEGE' 'Shear' ;
  210. *
  211. EvGlisse = 'EVOL' 'VERT' 'CHPO' NorGlis SUR_APPL ;
  212. EvGlisse = 'EXTR' EvGlisse 'COUR' 1 ;
  213. EvGlisse = 'CHAN' EvGlisse 'LEGE' 'Glissement' ;
  214. *
  215. EvDltEnD = 'EVOL' 'JAUN' 'CHPO' EnDisInc SUR_APPL ;
  216. EvDltEnD = 'EXTR' EvDltEnD 'COUR' 1 ;
  217. EvDltEnD = 'CHAN' EvDltEnD 'LEGE' 'Energie_dis_Inc' ;
  218. *
  219. EvEnDCyc = 'EVOL' 'GRIS' 'CHPO' EnDisCyc SUR_APPL ;
  220. EvEnDCyc = 'EXTR' EvEnDCyc 'COUR' 1 ;
  221. EvEnDCyc = 'CHAN' EvEnDCyc 'LEGE' 'Energie_dis_Cyc' ;
  222. *
  223. 'DESS' (EvCPress 'ET' EvCShear 'ET' (500000. * EvGlisse)
  224. 'ET' (100. * EvDltEnD) 'ET' (100. * EvEnDCyc)) 'LEGE' 'NCLK' ;
  225. *
  226. 'FINSI' ;
  227. 'FINSI' ;
  228. *
  229. *----------------------------------------------------------------------*
  230. * - CYCLE D'USURE (FORCE_TANGENTIELLE EN FONCTION DU DEPLACEMENT) *
  231. *----------------------------------------------------------------------*
  232. LstDelta = BOITE_US. ID_BU .'DELTAS' ;
  233. Delta_ii = 'EXTR' DEPZ BOITE_US.'INFOS'.'COMP_DEPI'
  234. BOITE_US.'INFOS'.'PTSZ_DEPI' ;
  235. LstDelta = LstDelta 'ET' Delta_ii ;
  236. *
  237. LstFTang = BOITE_US. ID_BU .'FORCES_TANGENTIELLES' ;
  238. FtangRes = 'PSCA' ForceT BOITE_US. ID_BU .'DIRE_REACTION'
  239. LCOMPF LCOMPF ;
  240. FTangRes = 'SOMT' FTangRes ;
  241. LstFTang = LstFTang 'ET' FTangRes ;
  242. *
  243. 'SI' (BOITE_US.'INFOS'.'FINCYCLE') ;
  244. CycActu = BOITE_US.'INFOS'.'INDICE_CYCLE_ACTUEL' ;
  245. CyclFret = 'EVOL' 'ROUG' 'MANU' 'Deplacement' LstDelta
  246. 'Force_Tangentielle' LstFTang ;
  247. EnteteCF = 'CHAI' 'Cycle_de_fretting_n: ' CycActu FORMAT '(I2)' ;
  248. CyclFret = 'CHAN' CyclFret 'LEGE' EnteteCF ;
  249. BOITE_US. ID_BU .'CYCLE_DE_FRETTING'. CycActu = CyclFret ;
  250. *
  251. * Reinitialisation (le dernier point est aussi premier cycle suivant)
  252. LstDelta = 'PROG' Delta_ii ;
  253. LstFTang = 'PROG' FTangRes ;
  254. *
  255. 'SI' (BOITE_US.'INFOS'.'TRACE_DEBUG') ;
  256. TabDess = TABL ;
  257. TabDess. 1 = 'TIRC MARQ CROI' ;
  258. 'DESS' CyclFret TabDess 'GRIL' 'LEGE' ;
  259. 'FINSI' ;
  260. 'FINSI' ;
  261. *
  262. *----------------------------------------------------------------------*
  263. * - STOCKAGE DES RESULTATS - DENS_ENER_DISS_CYCLE UTILSE DANS USPROF *
  264. *----------------------------------------------------------------------*
  265. Inctps = WTAB.'DT' ;
  266. IncActu = BOITE_US.'INFOS'.'INDICE_INCREMENT_ACTUEL' ;
  267. BOITE_US. ID_BU .'GLISSEMENT'. IncActu = 'ABS' NorGlis ;
  268. BOITE_US. ID_BU .'PRESSION_CONTACT'. IncActu = Inctps '*' CPress ;
  269. BOITE_US. ID_BU .'CISAILLEMENT'. IncActu = Inctps '*' ('ABS' CShear);
  270. BOITE_US. ID_BU .'DENS_ENER_DISS_CYCLE' = EnDisCyc ;
  271. BOITE_US. ID_BU .'DENS_ENER_DISS_TOTALE' = EnDisTot ;
  272. BOITE_US. ID_BU .'DELTAS' = LstDelta ;
  273. BOITE_US. ID_BU .'FORCES_TANGENTIELLES' = LstFTang ;
  274. *
  275. BOITE_US. ID_BU .'PRESSION_MAX_INC' =
  276. BOITE_US. ID_BU .'PRESSION_MAX_INC' 'ET' ('MAXI' CPress) ;
  277. *
  278. BOITE_US. ID_BU .'CISAILLEMENT_MAX_INC' =
  279. BOITE_US. ID_BU .'CISAILLEMENT_MAX_INC' 'ET' ('MAXI' CShear 'ABS') ;
  280. *
  281. FINP T1 ;
  282.  
  283.  

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