Télécharger @USCALC.procedur

Retour à la liste

Numérotation des lignes :

  1. * @USCALC PROCEDUR MB234859 19/11/27 21:15:00 10399
  2. ************************************************************************
  3. * PROCEDURE @USCALC
  4. *
  5. * Cette procedure recupere les valeurs de glissement et calcule le
  6. * cisaillement, la pression de contact et l'energie dissipee sur
  7. * l'increment. Elle realise aussi le cumul de l'energie dissipee
  8. * sur le cycle et determine l'energie dissipee totale
  9. *
  10. * Entrees :
  11. * T1 : Table de PASAPAS
  12. * ID_BU : Entier donnant le numero de la BOITE D'USURE a considerer
  13. *
  14. * Sortie :
  15. * T1 : Table de PASAPAS contenant les champs calcules
  16. *
  17. * Appelee par @USURE
  18. * [Collaboration LTDS - These E. Marc]
  19. *
  20. ************************************************************************
  21. DEBP @USCALC T1*'TABLE' ID_BU*'ENTIER';
  22.  
  23. * Affichage graphique
  24. ITRAC = FAUX ;
  25. *
  26. *----------------------------------------------------------------------*
  27. * - RELATION ENTRE NOEUDS CONT, FRO ET ESCLAVE
  28. *----------------------------------------------------------------------*
  29. *
  30. BOITE_US = T1.'BOITES_USURE' ;
  31. SUR_APPL = BOITE_US. ID_BU .'SURFACE_APPLICATION' ;
  32. VOL_REPA = BOITE_US. ID_BU .'VOLUME_REPARTITION' ;
  33. *
  34. 'SI' ('NON' ('EXIS' (BOITE_US. ID_BU) 'MULT_CONT'));
  35. *
  36. * Maillage de contact-frottement
  37. MODC = 'EXTR' T1.'MODELE' 'FORM' 'CONTACT' ;
  38. MFRO = 'EXTR' MODC 'MAIL' 'FROT' ;
  39. *
  40. * Correspondance entre mult de cont, de fro et pt esclave
  41. * Seuls les cas MESC et SYME (cf. operateur IMPO) sont traites
  42. NODEF = 'NBNO' (MFRO 'ELEM' 1) ;
  43. NBELT = 'NBEL' MFRO ;
  44. *
  45. MLIEN = 'VIDE' 'MAILLAGE'/'SEG3' ;
  46. MCONT = 'VIDE' 'MAILLAGE'/'POI1' ;
  47. 'REPE' BCL NBELT ;
  48. ELZ = MFRO 'ELEM' &BCL ;
  49. PCONT = ELZ 'POIN' 1 1 ;
  50. PESCL = ELZ 'POIN' (NODEF - 1) 1 ;
  51. PFROT = ELZ 'POIN' NODEF 1 ;
  52. MAIZ = 'MANU' 'SEG3' PCONT PESCL PFROT ;
  53. MLIEN = MLIEN 'ET' MAIZ ;
  54. MCONT = MCONT 'ET' PCONT ;
  55. 'FIN' BCL ;
  56. MLIEN = 'UNIQ' MLIEN ;
  57. MCONT = 'UNIQ' MCONT ;
  58. *
  59. MCONN = 'CHAN' SUR_APPL 'POI1' ;
  60. *
  61. BOITE_US. ID_BU .'MULT_CONT' = MCONT ;
  62. BOITE_US. ID_BU .'PTE_MULTS' = MLIEN ;
  63. BOITE_US. ID_BU .'SAPP_POI1' = MCONN ;
  64. 'FINSI';
  65. *
  66. MCONT = BOITE_US. ID_BU .'MULT_CONT' ;
  67. MLIEN = BOITE_US. ID_BU .'PTE_MULTS' ;
  68. MCONN = BOITE_US. ID_BU .'SAPP_POI1' ;
  69. *
  70. *----------------------------------------------------------------------*
  71. * - CREATION DES MAILLAGES POUR LES TRACES/EVOLS
  72. *----------------------------------------------------------------------*
  73. WTAB = T1.'WTABLE' ;
  74. * Recuperation des mult associes au CL unil (cont et fro melanges)
  75. MCAC = 'EXTR' WTAB.'RIBLO_M' 'MAIL' 'MULT' ;
  76. * Recuperation des mult de Lag associe de contact (actif)
  77. MUCA = MCAC 'INTE' MCONT ;
  78. *
  79. * Recuperation des mult de Lag de fro associe a ceux de cont
  80. MUFR = 'VIDE' 'MAILLAGE'/'POI1';
  81. 'REPE' BCL ('NBNO' MUCA) ;
  82. PZ = MUCA 'POIN' &BCL ;
  83. ELZ = MLIEN 'ELEM' 'CONTENANT' PZ ;
  84. PFROT = ELZ 'POIN' 3 1 ;
  85. MUFR = MUFR 'ET' PFROT ;
  86. 'FIN' BCL ;
  87. *
  88. * Recuperation des mult de Lag de fro qui glissent (inactif)
  89. MUFRA = MUFR 'INTE' MCAC ;
  90. MUGL = 'VIDE' 'MAILLAGE'/'POI1' ;
  91. 'REPE' BCL ('NBNO' MUFR) ;
  92. PFROT = MUFR 'POIN' &BCL ;
  93. 'SI' ('NON' ('DANS' PFROT MUFRA)) ;
  94. MUGL = MUGL 'ET' PFROT ;
  95. 'FINSI' ;
  96. 'FIN' BCL ;
  97. *
  98. *----------------------------------------------------------------------*
  99. * - RECUPERATION DU GLISSEMENT
  100. *----------------------------------------------------------------------*
  101. IGLI = 'NEG' ('NBNO' MUGL) 0 ;
  102. DCSlip = 'MANU' 'CHPO' SUR_APPL 1 'ETA1' 0. 'NATU' 'DISCRET' ;
  103. 'SI' IGLI ;
  104. MA1 = 'EXTR' WTAB.'RIBLO_M' 'MAIL' ;
  105. MBI = 'MODE' MA1 'MECANIQUE' 'ELASTIQUE' ;
  106. TBI = 'EXTR' MBI 'ZONE' ;
  107. NBZ = ('DIME' TBI) / 2 ;
  108. GLI = -1.* (T1.'WTABLE'.'DFLX') ;
  109. 'REPE' BCL ('NBNO' MUGL) ;
  110. PZ = MUGL 'POIN' &BCL ;
  111. ELZ = MLIEN 'ELEM' 'CONTENANT' PZ ;
  112. PC = ELZ 'POIN' 1 1 ;
  113. 'REPE' BCL2 NBZ ;
  114. NUMZ = 2*&BCL2 ;
  115. MAIZ = TBI. NUMZ ;
  116. 'SI' ('DANS' PC MAIZ) ;
  117. EL2 = MAIZ 'ELEM' 'CONTENANT' PC ;
  118. 'QUIT' BCL2 ;
  119. 'FINSI' ;
  120. 'FIN' BCL2 ;
  121. MPO1 = 'CHAN' EL2 'POI1' ;
  122. MAIZ = 'INTER' MCONN MPO1 ;
  123. NBP = 'NBNO' MAIZ ;
  124. VGLI = 'EXTR' GLI 'FLX' PZ ;
  125. LGLI = 'PROG' NBP * VGLI ;
  126. 'REPE' BCL3 NBP ;
  127. PT = MAIZ 'POIN' &BCL3 ;
  128. VPRE = 'EXTR' DCSlip 'ETA1' PT ;
  129. 'SI' ('NEG' VPRE 0.) ;
  130. NVAL = (VGLI + VPRE) * 0.5 - VPRE ;
  131. 'REMP' LGLI &BCL3 NVAL ;
  132. 'FINSI' ;
  133. 'FIN' BCL3 ;
  134. CHGL = 'MANU' 'CHPO' MAIZ 1 'ETA1' LGLI 'NATU' 'DISCRET' ;
  135. DCSlip = DCSlip 'ET' CHGL ;
  136. 'FIN' BCL;
  137. 'FINSI' ;
  138. EvDCSlip = 'EVOL' 'VERT' 'CHPO' DCSlip SUR_APPL ;
  139. EvDCSlip = 'EXTR' EvDCSlip 'COUR' 1 ;
  140. EvDCSlip = 'CHAN' EvDCSlip 'LEGE' 'Glissement' ;
  141. *
  142. *----------------------------------------------------------------------*
  143. * - DETERMINATION DU CISAILLEMENT ET DE LA PRESSION
  144. *----------------------------------------------------------------------*
  145. * Deplacements et reactions du pas actuel
  146. * DEPP = T1.'CONTINUATION'.'DEPLACEMENTS' ;
  147. DEPZ = T1.'ESTIMATION'.'DEPLACEMENTS' ;
  148. REAZ = 'REDU' (T1.'ESTIMATION'.'REACTIONS') SUR_APPL ;
  149. *
  150. * Creation des CHPOINTs de vecteur normal, vecteur tangent, longueur elt
  151. CHNO = 'MANU' 'CHPO' SUR_APPL 2 'VX' 0. 'VY' 0. 'NATU' 'DISCRET' ;
  152. CHTG = 'MANU' 'CHPO' SUR_APPL 2 'VX' 0. 'VY' 0. 'NATU' 'DISCRET' ;
  153. *
  154. CONF0 = 'FORM' ;
  155. 'FORM' DEPZ ;
  156. *
  157. * Vecteur normal a SUR_APPL
  158. MODREPA = 'REDU' (T1.'MODELE') VOL_REPA ;
  159. CHPR = 'PRES' 'MASS' SUR_APPL MODREPA -1. ;
  160. CMP1 = 'EXCO' CHPR 'FX' 'SCAL' ;
  161. CMP2 = 'EXCO' CHPR 'FY' 'SCAL' ;
  162. NVUS = ((CMP1**2)+(CMP2**2))**(0.5) ;
  163. CMPX = CMP1 / NVUS ; CMPY = CMP2 / NVUS ;
  164. CHNO = ('CHAN' CMPX 'COMP' 'VX') 'ET' ('CHAN' CMPY 'COMP' 'VY') ;
  165. *
  166. * Vecteur tangent a SUR_APPL
  167. CHTG = ('CHAN' CMPY 'COMP' 'VX') 'ET' ('CHAN' (-1.*CMPX) 'COMP' 'VY');
  168. *
  169. CHLE = 'MANU' 'CHPO' SUR_APPL 1 'LE' 0. 'NATURE' 'DISCRET' ;
  170. 'REPE' BCL ('NBEL' SUR_APPL) ;
  171. ELTZ = SUR_APPL 'ELEM' &BCL ; LELT = 'MESU' ELTZ ;
  172. CHPZ = 'MANU' 'CHPO' ELTZ 1 'LE' (LELT/2.) 'NATURE' 'DISCRET' ;
  173. CHLE = CHLE 'ET' CHPZ ;
  174. 'FIN' BCL ;
  175. 'FORM' CONF0 ;
  176. *
  177. * Listes pour les projections et produits scalaires
  178. LF = MOTS 'FX' 'FY' ; LV = MOTS 'VX' 'VY' ; LE = MOTS 'LE' 'LE' ;
  179. REASU = REAZ '/' CHLE LF LE LF ;
  180. *
  181. * - Pression de contact
  182. Cpress = 'PSCA' CHNO REASU LV LF ;
  183. EvCPress = 'EVOL' 'BLEU' 'CHPO' CPress SUR_APPL ;
  184. EvCPress = 'EXTR' EvCPress 'COUR' 1 ;
  185. EvCPress = 'CHAN' EvCPress 'LEGE' 'Pressure' ;
  186. *
  187. * - Cisaillement
  188. CShear = 'PSCA' CHTG REASU LV LF ;
  189. EvCShear = 'EVOL' 'ROUG' 'CHPO' CShear SUR_APPL ;
  190. EvCShear = 'EXTR' EvCShear 'COUR' 1 ;
  191. EvCShear = 'CHAN' EvCShear 'LEGE' 'Shear' ;
  192. *
  193. *----------------------------------------------------------------------*
  194. * - CALCUL DE L ENERGIE DISSIPEE
  195. *----------------------------------------------------------------------*
  196. * Energie dissipee sur l increment
  197. 'SI' IGLI ;
  198. EnDisInc = CShear '*' DCSlip ('MOTS' 'SCAL') ('MOTS' 'ETA1')
  199. ('MOTS' 'ED') ;
  200. EnDisInc = 'ABS' EnDisInc ;
  201. 'SINON' ;
  202. EnDisInc = 'MANU' 'CHPO' SUR_APPL 1 'ED' 0. 'NATURE' 'DISCRET' ;
  203. 'FINSI';
  204. *
  205. * Energie dissipee sur le pas de temps le long de SUR_APPL
  206. EvDltEnD = 'EVOL' 'JAUN' 'CHPO' EnDisInc SUR_APPL ;
  207. EvDltEnD = 'EXTR' EvDltEnD 'COUR' 1 ;
  208. EvDltEnD = 'CHAN' EvDltEnD 'LEGE' 'Energie dis. Inc.' ;
  209. *
  210. * Energie dissipee sur le cycle le long de SUR_APPL
  211. EnDisCyc = BOITE_US. ID_BU .'ENERGIE_DISSIPEE_CYCLE' ;
  212. EnDisCyc = EnDisCyc + EnDisInc ;
  213. EvEnDCyc = 'EVOL' 'BLAN' 'CHPO' EnDisCyc SUR_APPL ;
  214. EvEnDCyc = 'EXTR' EvEnDCyc 'COUR' 1 ;
  215. EvEnDCyc = 'CHAN' EvEnDCyc 'LEGE' 'Energie dis. Cyc.' ;
  216. *
  217. * Energie dissipee totale (ensemble des cycles) le long de SUR_APPL
  218. EnDisTot = BOITE_US. ID_BU .'ENERGIE_DISSIPEE_TOTALE' ;
  219. EnDisTot = EnDisTot + EnDisInc ;
  220. EvEnDTot = 'EVOL' 'GRIS' 'CHPO' EnDisTot SUR_APPL ;
  221. EvEnDTot = 'EXTR' EvEnDTot 'COUR' 1 ;
  222. EvEnDTot = 'CHAN' EvEnDTot 'LEGE' 'Energie dis. Tot.' ;
  223. *
  224. * Trace
  225. 'SI' ITRAC ;
  226. 'DESS' (EvCPress 'ET' EvCShear 'ET' (500000. * EvDCSlip)
  227. 'ET' (100. * EvDltEnD) 'ET' (100. * EvEnDCyc)
  228. 'ET' (50. * EvEnDTot )) 'LEGE' 'NCLK' ;
  229. 'FINSI' ;
  230. *
  231. *----------------------------------------------------------------------*
  232. * - CYCLE DE FRETTING
  233. *----------------------------------------------------------------------*
  234. *
  235. * Deplacement
  236. LstDelta = BOITE_US. ID_BU .'DELTAS' ;
  237. Delta_ii = 'EXTR' DEPZ 'UX' (BOITE_US.'DONNEES'.'POINT_REF_DELTA') ;
  238. LstDelta = LstDelta 'ET' Delta_ii ;
  239. *
  240. * Reaction
  241. LstFTang = BOITE_US. ID_BU .'FORCES_TANGENTIELLES' ;
  242. FTang_ii = 'INTG' EvCShear ;
  243. LstFTang = LstFTang 'ET' FTang_ii ;
  244. *
  245. * Doit-on sauvegarder les resutlats?
  246. 'SI' (BOITE_US.'INFOS'.'FINCYCLE') ;
  247. * Cycle de fretting
  248. CycActu = BOITE_US.'INFOS'.'INDICE_CYCLE_ACTUEL' ;
  249. CyclFret = 'EVOL' 'ROUG' 'MANU' 'Deplacement (mm)' LstDelta
  250. 'Force Tangentielle (N/mm)' LstFTang ;
  251. EnteteCF = 'CHAI' 'Cycle de fretting n: ' CycActu FORMAT '(I2)' ;
  252. CyclFret = 'CHAN' CyclFret 'LEGE' EnteteCF ;
  253. BOITE_US. ID_BU .'CYCLE_DE_FRETTING'. CycActu = CyclFret ;
  254. *
  255. * - Reinitialisation (dernier point et aussi premier cycle suivant)
  256. LstDelta = 'PROG' Delta_ii ;
  257. LstFTang = FTang_ii ;
  258. *
  259. * - Trace eventuel
  260. 'SI' ITRAC ;
  261. TabDess = TABL ;
  262. TabDess. 1 = 'TIRC MARQ CROI' ;
  263. 'DESS' CyclFret TabDess 'GRIL' 'LEGE' ;
  264. 'FINSI' ;
  265. 'FINSI' ;
  266. *
  267. * Stockage des resultats
  268. IncActu = BOITE_US.'INFOS'.'INDICE_INCREMENT_ACTUEL' ;
  269. BOITE_US. ID_BU .'EVO_GLISSEMENT_CONTACT'. IncActu = EvDCSlip ;
  270. BOITE_US. ID_BU .'EVO_PRESSION_CONTACT'. IncActu = EvCPress ;
  271. BOITE_US. ID_BU .'EVO_CISAILLEMENT_CONTACT'. IncActu = EvCShear ;
  272. BOITE_US. ID_BU .'ENERGIE_DISSIPEE_CYCLE' = EnDisCyc ;
  273. BOITE_US. ID_BU .'EVO_ENERGIE_DISSIPEE_CYCLE' = EvEnDCyc ;
  274. BOITE_US. ID_BU .'ENERGIE_DISSIPEE_TOTALE' = EnDisTot ;
  275. BOITE_US. ID_BU .'EVO_ENERGIE_DISSIPEE_TOTALE' = EvEnDTot ;
  276. BOITE_US. ID_BU .'DELTAS' = LstDelta ;
  277. BOITE_US. ID_BU .'FORCES_TANGENTIELLES' = LstFTang ;
  278. *
  279. FINP T1 ;
  280.  
  281.  
  282.  

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