Télécharger usure.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : usure.dgibi
  2. *
  3. *
  4. * Presentation du cas-test:
  5. * -------------------------
  6. *
  7. * Modelisation 2D du contact-frottement (de type Coulomb) entre un
  8. * cylindre et un plan. et prise en compte du profil d'usure.
  9. * Comparaison code a code avec WearBox du LTDS (S.Fouvry et S.Garcin)
  10. * Code Matlab - Abaqus - Python
  11. * Fretting Team - LTDS - Ecole Centrale Lyon
  12. *
  13. * [Collaboration LTDS - These E. Marc]
  14. *
  15. * Ce cas-test appelle la procedure USURE
  16. *______________________________________________________________________
  17.  
  18. * DEFINITION D'UNE BOITE D USURE
  19. *______________________________________________________________________
  20. *
  21. * Table contenant toutes les informations pour l'usure
  22. *
  23. * BOX1 = TABL ;
  24. * -> Creation de la boite d'usure a stocker dans la table PASAPAS
  25. *
  26. * Indices a definir pour chaque boite d'usure i :
  27. *
  28. * BOX1. i .'VOLUME_REPARTITION'
  29. * -> Volume sous la surface usee pour "repartir" l'usure.
  30. *
  31. * BOX1. i .'SURFACE_APPLICATION'
  32. * -> Surface usee (ou sera appliquee l'usure).
  33. *
  34. * BOX1. i .'COEFFICIENT_USURE'
  35. * -> Valeur du coefficient d'usure (en mm3/mJ).
  36. *
  37. * Indices pour definir les cycles d'usure dans une table 'DONNEES'
  38. *
  39. * BOX1.'DONNEES'.'T_DEBUT_USURE'
  40. * -> Temps ou demarre l'usure.
  41. *
  42. * BOX1.'DONNEES'.'PERIODE'
  43. * -> Periode d'un cycle d'usure.
  44. *
  45. * BOX1.'DONNEES'.'NB_CYCLES'
  46. * -> Nombre de cycle d'usure
  47. *
  48. * BOX1.'DONNEES'.'ACCELERATION'
  49. * -> Valeur du coefficient d'acceleration (sans unite).
  50. *
  51. * BOX1.'DONNEES'.'INCREMENTS_CYCLE'
  52. * -> Nombre de point calcule par cycle
  53. *
  54. * Remarques :
  55.  
  56. * 1/ On parle de SURFACE et de VOLUME mais puisqu'il s'agit d'un
  57. * cas-test bidimensionnel, il convient de remplacer ces termes
  58. * respectivement par ligne et surface.
  59. *
  60. * 2/ Un indice 'BOITES_USURE' de la table de PASAPAS sera defini
  61. * comme etant un objet de type TABLE.
  62. * Soit TAB1, la table de PASAPAS, alors
  63. * TAB1.'BOITES_USURE' = BOX1 ;
  64. *
  65. * 3/ Les dimensions sont donnees ici en mm
  66. *
  67. *______________________________________________________________________
  68. *
  69. * DONNEES UTILES
  70. *______________________________________________________________________
  71. *
  72. * Donnees a renseigner correspondant aux conditions experimentales a simuler
  73. *
  74. * Rayon du cylindre (mm) : rayon
  75. * Generatrice du cylindre (dimension hors plan) (mm) : genCyl
  76. * Caracteristiques materiaux (MPa) : YoungCyl, YoungPln, NuCyl, NuPlan
  77. * Coefficient de frottement : MuContact
  78. * Debattement maximal impose (mm) : DltEtoil
  79. * Periode du cycle de fretting (s) : periode
  80. * Force normale imposee (N) : ForceN
  81. * Coefficients d usure energetiques (mm3/mJ) : ALPHA1 et ALPHA2
  82. * Direction d application de l usure
  83. * Facteur d acceleration : BETA
  84. *______________________________________________________________________
  85. *
  86. * OPTION DE CALCUL
  87. *______________________________________________________________________
  88. *
  89. * Definition des options de calcul
  90. OPTI DIME 2 ELEM QUA4 ;
  91. OPTI MODE 'PLAN' 'DEFO';
  92. * Pieces massives => Deformations planes
  93. * OPTI DEBU 1 ;
  94. OPTI SAUV TAILLE 2.e9 8 ;
  95. OPTI TRAC PSC ;
  96. *
  97. LGRAPH = FAUX ;
  98. * Booleen pour n'effectuer que le trace du maillage (pas de resolution)
  99. OnlyMesh = FAUX ;
  100. * Maillage grossier (en dehors de la zone WearBox, elle non modifiee)
  101. YESFATMS = FAUX ;
  102. * Prendre en compte l'usure du plan ?
  103. OuiUsPla = VRAI ;
  104. * Prendre en compte l'usure du cylindre ?
  105. OuiUsCyl = FAUX ;
  106. *______________________________________________________________________
  107. *
  108. * MAILLAGE
  109. *______________________________________________________________________
  110. *
  111. * - DIMENSIONS GEOMETRIQUES DU MODELE (en mm !!!!!)
  112. * CT -> Cylindre Total BUC -> Boite Usure Cylindre
  113. * PT -> Plan Total BUP -> Boite Usure Plan
  114. * FineMS correspond a la taille des elements
  115. FineMS = 0.010 ;
  116. rayon = 4.8 ;
  117. LgrCT = 0.75 ;
  118. EprCT = 0.25 ;
  119. LgrPT = 0.75 ;
  120. EprPT = 0.25 ;
  121. LgrBUC = 0.4 ;
  122. EprBUC = 0.125 ;
  123. LgrBUP = 0.4 ;
  124. EprBUP = 0.125 ;
  125. * FCYL et FPLA sont des facteurs permettant de jouer sur la densite du
  126. * maillage dans la boite d'usure. Ils ne sont pas necessairement egaux
  127. * Ce sont des facteurs multiplicatifs de FineMS.
  128. FCYL = 1.0 ; FPLA = 1.0 ;
  129. *
  130. * - MAILLAGE DU CYLINDRE
  131. * -> Dimensions, nombre et taille des elements pour le cylindre
  132. LgrBU = (( ENTI 'SUPERIEUR' (LgrBUC/FineMS/2) ) * FineMS * 2) ;
  133. EprBU = (( ENTI 'SUPERIEUR' (EprBUC/FineMS ) ) * FineMS ) ;
  134. NLgrBU = 2* (ENTI 'PROCHE' (LgrBU / FineMS / 2)) ;
  135.  
  136. * -> Dimensions du cylindre totale
  137. AlphaCT = ASIN ((LgrCT/2.)/rayon) ;
  138. GapCT = (1. - (COS AlphaCT) ) * rayon ;
  139. HtrCT = GapCT + EprCT ;
  140.  
  141. * -> Dimensions de la boite d usure, partie cylindre
  142. AlphaBU = ASIN ((LgrBU/2.)/rayon) ;
  143. GapBU = (1. - (COS AlphaBU) ) * rayon ;
  144. HtrBU = GapBU + EprBU ;
  145.  
  146. * -> Points
  147. P0 = 0.0 0.0 ;
  148. PCEN = 0.0 rayon ;
  149. PA = (-1*LgrCT/2) GapCT ;
  150. PB = (-1*LgrBU/2) GapBU ;
  151. PC = ( LgrBU/2) GapBU ;
  152. PD = ( LgrCT/2) GapCT ;
  153. PE = ( LgrCT/2) HtrCT ;
  154. PF = (-1*LgrCT/2) HtrCT ;
  155. PG = ( LgrBU/2) HtrBU ;
  156. PH = (-1*LgrBU/2) HtrBU ;
  157.  
  158. * -> Lignes
  159. CBC = CERC NLgrBU PB PCEN PC ;
  160. LCG = DROI PC PG 'DINI' FineMS 'DFIN' (FCYL*FineMS) ;
  161. LGH = DROI NLgrBU PG PH ;
  162. LHB = DROI PH PB 'DINI' (FCYL*FineMS) 'DFIN' FineMS ;
  163. * -> Contour interieur (identique que le maillage soit grossier ou non)
  164. CntrInt = LCG ET LGH ET LHB ;
  165.  
  166. * -> Surface boite d'usure (partie en contact-frottement)
  167. SrfBUC = 'DALL' CBC LCG LGH LHB 'PLAN' ;
  168.  
  169. SI YESFATMS ;
  170. NEprBU = ENTI 'PROCHE' (EprBU / FineMS) ;
  171. GrosMSVC = (EprCT / NEprBU) * 2. ;
  172. CAB = CERC 'DINI' GrosMSVC 'DFIN' FineMS PA PCEN PB ;
  173. CCD = CERC 'DINI' FineMS 'DFIN' GrosMSVC PC PCEN PD ;
  174. LDE = DROI PD PE 'DINI' GrosMSVC 'DFIN' GrosMSVC ;
  175. LEF = DROI PE PF 'DINI' GrosMSVC 'DFIN' GrosMSVC ;
  176. LFA = DROI PF PA 'DINI' GrosMSVC 'DFIN' GrosMSVC ;
  177. SINON ;
  178. NBE = 'NBEL' LCG ;
  179. 'SI' ('>EG' FCYL 1.51) ;
  180. RCYL = ((LgrCT - LgrBU) / 2.)/ EprBU ;
  181. 'SINON' ;
  182. RCYL = 2.0 ;
  183. 'FINSI' ;
  184. CAB = CERC 'DINI' (RCYL*FCYL*FineMS) 'DFIN' FineMS PA PCEN PB ;
  185. CCD = CERC 'DINI' FineMS 'DFIN' (RCYL*FCYL*FineMS) PC PCEN PD ;
  186. LDE = DROI NBE PD PE ;
  187. LEF = DROI NLgrBU PE PF ;
  188. LFA = DROI NBE PF PA ;
  189. FINSI ;
  190.  
  191. * -> Contour exterieur (depend si le maillage est grossier ou non)
  192. CntrExt = LDE ET LEF ET LFA ;
  193.  
  194. * -> Surface du reste du cylindre ( contour interieur et exterieur)
  195. SI YESFATMS ;
  196. SrfCT = SURF ((INVE CntrInt) ET CCD ET CntrExt ET CAB) ;
  197. SINON ;
  198. SrfCT = DALL (INVE CntrInt) CCD CntrExt CAB 'PLAN' ;
  199. FINSI ;
  200.  
  201. * -> Surface totale du cylindre
  202. SurfCyl = SrfBUC ET SrfCT ;
  203. ELIM SurfCyl 1.e-8 ;
  204.  
  205. * - MAILLAGE DU PLAN
  206. * -> Dimensions, nombre et taille des elements pour le plan
  207. LgrBU = (( ENTI 'SUPERIEUR' (LgrBUP/FineMS/2) ) * FineMS * 2) ;
  208. EprBU = (( ENTI 'SUPERIEUR' (EprBUP/FineMS ) ) * FineMS ) ;
  209. NLgrBU = 2* (ENTI 'PROCHE' (LgrBU / FineMS / 2)) ;
  210.  
  211. * -> Points
  212. PI = (-1*LgrPT/2) 0.0 ;
  213. PJ = (-1*LgrBU/2) 0.0 ;
  214. PK = ( LgrBU/2) 0.0 ;
  215. PK = ( LgrBU/2) -0.00 ;
  216. PL = ( LgrPT/2) 0.0 ;
  217. PM = ( LgrPT/2) (-1.*EprPT) ;
  218. PN = (-1*LgrPT/2) (-1.*EprPT) ;
  219. PO = ( LgrBU/2) (-1.*EprBU) ;
  220. PP = (-1*LgrBU/2) (-1.*EprBU) ;
  221.  
  222. * -> Lignes
  223. LJK = DROI NLgrBU PJ PK ;
  224. LKO = DROI PK PO 'DINI' FineMS 'DFIN' (FPLA*FineMS) ;
  225. LOP = DROI NLgrBU PO PP ;
  226. LPJ = DROI PP PJ 'DINI' (FPLA*FineMS) 'DFIN' FineMS ;
  227.  
  228. * -> Contour interieur (identique que le maillage soit grossier ou non)
  229. CntrInt = LKO ET LOP ET LPJ ;
  230.  
  231. * -> Surface boite d'usure (partie en contact-frottement)
  232. SrfBUP = 'DALL' LOP (INVE LKO) LJK (INVE LPJ) 'PLAN' ;
  233.  
  234. SI YESFATMS ;
  235. NEprBU = ENTI 'PROCHE' (EprBU / FineMS) ;
  236. GrosMSVP = (EprPT / NEprBU) * 4. ;
  237. LIJ = DROI 'DINI' GrosMSVP 'DFIN' FineMS PI PJ ;
  238. LKL = DROI 'DINI' FineMS 'DFIN' GrosMSVP PK PL ;
  239. LLM = DROI PL PM 'DINI' GrosMSVP 'DFIN' GrosMSVP ;
  240. LMN = DROI PM PN 'DINI' GrosMSVP 'DFIN' GrosMSVP ;
  241. LNI = DROI PN PI 'DINI' GrosMSVP 'DFIN' GrosMSVP ;
  242. SINON ;
  243. NBE = 'NBEL' LPJ ;
  244. 'SI' ('>EG' FPLA 1.51) ;
  245. RPLA = ((LgrPT - LgrBU) / 2.)/ (HtrBU - GapBU) ;
  246. 'SINON' ;
  247. RPLA = 2.0 ;
  248. 'FINSI' ;
  249. LIJ = DROI 'DINI' (RPLA*FPLA*FineMs) 'DFIN' FineMS PI PJ ;
  250. LKL = DROI 'DINI' FineMS 'DFIN' (RPLA*FPLA*FineMS) PK PL ;
  251. LLM = DROI NBE PL PM ;
  252. LMN = DROI NLgrBU PM PN ;
  253. LNI = DROI NBE PN PI ;
  254. FINSI ;
  255.  
  256. * -> Contour exterieur (depend si le maillage est grossier ou non)
  257. CntrExt = LLM ET LMN ET LNI;
  258.  
  259. * -> Surface du reste du plan
  260. SI YESFATMS ;
  261. SrfPT = SURF ((INVE CntrInt) ET LKL ET CntrExt ET LIJ ) ;
  262. SINON ;
  263. SrfPT = DALL (INVE CntrInt) LKL CntrExt LIJ 'PLAN' ;
  264. FINSI ;
  265.  
  266. * -> Surface totale du plan
  267. SurfPlan = SrfBUP ET SrfPT ;
  268. ELIM SurfPlan 1.e-8 ;
  269. *SrfBUP = SurfPlan INTE SrfBUP ;
  270. *
  271. * RECUPERATION DES ZONES DE MAILLAGE UTILES
  272. * -> Cylindre
  273. CntrCyl = CONT SurfCyl 'COUL' 'BLEU' ;
  274. PtsHautC = SurfCyl POIN 'DROIT' PF PE 1.e-8 ;
  275. PtsCrbeC = SurfCyl POIN 'SPHE' PCEN P0 1.e-8 ;
  276. SetHautC = CntrCyl ELEM 'APPU' 'STRI' PtsHautC ;
  277. SetCrbeC = CntrCyl ELEM 'APPU' 'STRI' PtsCrbeC ;
  278. SetCrbeC = ORIE SetCrbeC ;
  279.  
  280. * -> Plan
  281. CntrPlan = CONT SurfPlan 'COUL' 'BLEU' ;
  282. PtsHautP = SurfPlan POIN 'DROIT' PI PL 1.e-8 ;
  283. PtsBasP = SurfPlan POIN 'DROIT' PM PN 1.e-8 ;
  284. PtsGaucP = SurfPlan POIN 'DROIT' PI PN 1.e-8 ;
  285. PtsDroiP = SurfPlan POIN 'DROIT' PL PM 1.e-8 ;
  286. SetHautP = CntrPlan ELEM 'APPU' 'STRI' PtsHautP ;
  287. SetBasP = CntrPlan ELEM 'APPU' 'STRI' PtsBasP ;
  288. SetGaucP = CntrPlan ELEM 'APPU' 'STRI' PtsGaucP ;
  289. SetDroiP = CntrPlan ELEM 'APPU' 'STRI' PtsDroiP ;
  290. SetHautP = ORIE SetHautP ;
  291. *
  292. SI OnlyMesh ;
  293. TRAC ((CntrCyl ET CntrPlan) ET (SurfCyl ET SurfPlan))
  294. TITR 'Maillage Cylindre et Plan' ;
  295. FINSI ;
  296. *
  297. * Creation du maillage de contact
  298. **MeshCntc ='IMPO' 'MAIL' 'MESC' CBC (INVE LJK) ;
  299. **MeshCntc = MeshCntc 'COUL' 'JAUN' ;
  300.  
  301. SI OnlyMesh ;
  302. ** TRAC (MeshCntc ET (CntrCyl ET CntrPlan) ET (SurfCyl ET SurfPlan))
  303. TITR 'Maillages Cylindre, Plan et Zone Contact' ;
  304. FINSI ;
  305. *______________________________________________________________________
  306. *
  307. * MODELES ET MATERIAUX
  308. *______________________________________________________________________
  309. *
  310. * ATTENTION LES DIMENSIONS DE NOS PIECES SONT EN MM
  311. YoungCyl = 200000 ; NuCyl = 0.3 ;
  312. YoungPln = 200000 ; NuPlan = 0.3 ;
  313. MuContac = 0.9;
  314. *
  315. ModeCyl = MODE SurfCyl 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE' ;
  316. MateCyl = MATE ModeCyl 'YOUN' YoungCyl 'NU' NuCyl ;
  317. *
  318. ModePlan = MODE SurfPlan 'MECANIQUE' 'ELASTIQUE' 'ISOTROPE' ;
  319. MatePlan = MATE ModePlan 'YOUN' YoungPln 'NU' NuPlan ;
  320. *
  321. ModeCntc = MODE cbc 'CONTACT' 'FROTTANT' 'COULOMB' (inve ljk) ;
  322. MateCntc = MATE ModeCntc 'MU' MuContac;
  323. *______________________________________________________________________
  324. *
  325. * CONDITIONS AUX LIMITES
  326. *______________________________________________________________________
  327. *
  328. BlcXPlan = (SetGaucP ET SetDroiP) BLOQ 'UX' ;
  329. BlcYPlan = SetBasP BLOQ 'UY' ;
  330. BlocPlan = (BlcXPlan ET BlcYPlan) ;
  331.  
  332. LinkHauC = BLOQ SetHautC 'UX' ;
  333. YcommunC = RELA ENSE SetHautC 'UY';
  334. BlocCyl = LinkHauC ET YcommunC ;
  335.  
  336. BloTot = BlocPlan ET BlocCyl ;
  337. *______________________________________________________________________
  338. *
  339. * CHARGEMENTS ET INSTANTS CALCULES
  340. *______________________________________________________________________
  341. *
  342. DltEtoil = 0.004 ;
  343. NCyReel = 2500 ;
  344. BETA = 500 ;
  345. t_0 = 1.0 ;
  346. periode = 1. ;
  347. *
  348. * Instants de debut et de fin des cycles d'usure
  349. T_INI_US = (t_0 + (periode/4.)) ;
  350. T_FIN_US = T_INI_US + (NCyReel * periode) ;
  351.  
  352. * Evolutions pour les chargements
  353. ListT_Fn = PROG 0. 1. T_FIN_US ;
  354. ListF_Fn = PROG 0. 1. 1. ;
  355. Evol_Fn = 'EVOL' 'VERT' 'MANU' ListT_Fn 'Temps' ListF_Fn 'F_n' ;
  356.  
  357. ListT_De = 'PROG' 0. t_0 T_INI_US ;
  358. ListA_De = 'PROG' 0. 0. 1. ;
  359. TREPR = T_INI_US ;
  360. Demiper = periode / 2. ;
  361. REPE BTPS NCyReel ;
  362. TINTE = TREPR + Demiper ;
  363. TREPR = TREPR + periode ;
  364. ListT_De = ListT_De 'ET' (PROG TINTE TREPR) ;
  365. ListA_De = ListA_De 'ET' (PROG -1. 1.) ;
  366. FIN BTPS ;
  367. Evol_De = 'EVOL' 'TURQ' 'MANU' ListT_De 'Temps' ListA_De 'Delta' ;
  368.  
  369. * - Chargement en force pour mettre en contact les deux solides
  370. ForceN = 60. ;
  371. ValPresN = ForceN / LgrCT;
  372. PressNod = 'PRES' 'MASS' ModeCyl ValPresN SetHautC ;
  373. CharNorm = 'CHAR' 'MECA' Evol_Fn PressNod ;
  374.  
  375. * - Chargement en deplacement impose qui fait frotter les deux solides
  376. DeplFret = 'DEPI' LinkHauC DltEtoil ;
  377. CharFret = 'CHAR' 'DIMP' Evol_De DeplFret ;
  378.  
  379. * - Liste des instants a calculer
  380. LTPS = 'PROG' 0. PAS 0.125 t_0 1.0312 1.0625 1.1562 ;
  381. LTPS = LTPS 'ET' ('PROG'
  382. 1.2500 1.2812 1.3125 1.3438 1.3750 1.4688 1.5625 1.6562
  383. 1.7500 1.7812 1.8125 1.8438 1.8750 1.9688 2.0625 2.1562
  384. 2.2500 2.2777 2.3053 2.3330 2.3606 2.4580 2.5553 2.6527
  385. 2.7500 2.7777 2.8053 2.8330 2.8606 2.9580 3.0553 3.1527
  386. 3.2500 3.2817 3.3134 3.3451 3.3768 3.4701 3.5634 3.6567
  387. 3.7500 3.7817 3.8134 3.8451 3.8768 3.9701 4.0634 4.1567) ;
  388. LTPS = LTPS 'ET' ('PROG'
  389. 4.2500 4.2794 4.3087 4.3381 4.3675 4.4631 4.5587 4.6544
  390. 4.7500 4.7794 4.8087 4.8381 4.8675 4.9631 5.0587 5.1544
  391. 5.2500 5.2794 5.3087 5.3381 5.3675 5.4631 5.5587 5.6544
  392. 5.7500 5.7794 5.8087 5.8381 5.8675 5.9631 6.0587 6.1544
  393. 6.2500) ;
  394. *
  395. NBINCR = 16 ;
  396. **VALPAS = periode / NBINCR ;
  397. **LTPS = 'PROG' 0. PAS 0.125 t_0 1.0312 1.0625 1.1562 ;
  398. **LTPS = LTPS 'ET' ('PROG' 1.25 'PAS' VALPAS 6.25) ;
  399. *______________________________________________________________________
  400. *
  401. * DEFINITION DE LA BOITE D USURE
  402. *______________________________________________________________________
  403. *
  404. * Coefficient pour l'usure (alpha en mm3/mJ)
  405. ALPHA = 1.e-8 ;
  406. *
  407. * -> Boite d usure pour le plan
  408. BOX1 = TABL ;
  409. BOX1.'VOLUME_REPARTITION' = SrfBUP ;
  410. BOX1.'SURFACE_APPLICATION' = ('INVE' LJK) ;
  411. BOX1.'COEFFICIENT_USURE' = ALPHA ;
  412.  
  413. * -> Boite d usure pour le cylindre
  414. BOX2 = TABL 'BOITE_USURE' ;
  415. BOX2.'VOLUME_REPARTITION' = SrfBUC ;
  416. BOX2.'SURFACE_APPLICATION' = ('INVE' CBC) ;
  417. BOX2.'COEFFICIENT_USURE' = ALPHA ;
  418.  
  419. **************************************
  420. ** ENCAPSULAGE DES BOITES D'USURE **
  421. **************************************
  422. NbBoxUs = 0 ;
  423. YesUsur = VRAI ;
  424.  
  425. SI OuiUsCyl ; NbBoxUs = NbBoxUs + 1 ; FINSI ;
  426. SI OuiUsPla ; NbBoxUs = NbBoxUs + 1 ; FINSI ;
  427.  
  428. BOX_USUR = TABL ;
  429. BOX_USUR.'DONNEES' = 'TABLE' ;
  430. BOX_USUR.'DONNEES'.'T_DEBUT_USURE' = T_INI_US ;
  431. BOX_USUR.'DONNEES'.'PERIODE' = periode ;
  432. BOX_USUR.'DONNEES'.'NB_CYCLES' = NCyReel ;
  433. BOX_USUR.'DONNEES'.'ACCELERATION' = BETA ;
  434. BOX_USUR.'DONNEES'.'INCREMENTS_CYCLE' = NBINCR ;
  435.  
  436. SI (NbBoxUs EGA 2) ;
  437. BOX_USUR. 1 = BOX1 ;
  438. BOX_USUR. 2 = BOX2 ;
  439. SINON ; SI OuiUsCyl ;
  440. BOX_USUR. 1 = BOX2 ;
  441. SINON ; SI OuiUsPla ;
  442. BOX_USUR. 1 = BOX1 ;
  443. SINON ;
  444. YesUsur = FAUX ;
  445. FINSI ; FINSI ; FINSI ;
  446. *______________________________________________________________________
  447. *
  448. * DEFINTION DE LA TABLE DE PASAPAS
  449. *______________________________________________________________________
  450. *
  451. TAB1 = TABL 'PASAPAS' ;
  452. TAB1.'MODELE' = ModeCyl ET ModePlan ET ModeCntc ;
  453. TAB1.'CARACTERISTIQUES' = MateCyl ET MatePlan ET MateCntc ;
  454. TAB1.'CHARGEMENT' = CharFret ET CharNorm ;
  455. TAB1.'BLOCAGES_MECANIQUES' = BloTot ;
  456. TAB1.'GRANDS_DEPLACEMENTS' = VRAI ;
  457. TAB1.'TEMPS_CALCULES' = LTPS ;
  458. TAB1.'BOITES_USURE' = BOX_USUR ;
  459. TAB1.'LAGRANGIEN' = 'MOT' 'TOTAL' ;
  460. SI YesUsur ;
  461. TAB1.'PROCEDURE_PERSO1' = VRAI ;
  462. SINON ;
  463. TAB1.'PROCEDURE_PERSO1' = FAUX ;
  464. FINSI ;
  465. *
  466. Tmp = TEMPS 'HORL' ;
  467. *______________________________________________________________________
  468. *
  469. * PROCEDURE UTILISATEUR PERSO1
  470. *______________________________________________________________________
  471. *
  472. DEBP PERSO1 T1*'TABLE' ;
  473. T1 = USURE T1 ;
  474. FINP T1;
  475. *______________________________________________________________________
  476. *
  477. * APPEL A LA PROCEDURE PASAPAS
  478. *______________________________________________________________________
  479. *
  480. PASAPAS Tab1 ;
  481. *explorer tab1 ;
  482.  
  483. * kich : coefficients arbitraires
  484. cafaus = manu chml (ModeCyl ET ModePlan) 'ADVK' -0.33 'BDVK' 19.9e1
  485. 'APAP' -0.34 'BPAP' 19.8e1 'ASIN' -0.35 'BSIN' 19.7e1
  486. 'ACRO' -0.36 'BCRO' 19.6e1 'A_DC' -0.37 'B_DC' 19.5e1
  487. type 'CARACTERISTIQUES' stresses ;
  488. chaus1 = char tab1 . temps tab1 . contraintes ;
  489.  
  490. chfa1 = FATI (ModeCyl ET ModePlan) chaus1 cafaus 5. 6.5 ;
  491.  
  492. lcoul1 = prog -10. -1. -0.5 -0.2 -0.1 0. 0.1 0.2 0.5 1. 10. ;
  493. SI LGRAPH ;
  494. trac chfa1 (ModeCyl ET ModePlan) lcoul1 ;
  495. FINSI ;
  496.  
  497. *chfa2 = FATI (ModeCyl ET ModePlan) chaus1 cafaus 5. 6.5 'PAPA' ;
  498. chfa3 = FATI (ModeCyl ET ModePlan) chaus1 cafaus 5. 6.5 'DVKP' ;
  499.  
  500. p_cyb = -8.00180E-02 1.09364E-02 ; p_cyb = point Surfcyl proc p_cyb ;
  501. mmcyb = elem surfcyl appuye largement p_cyb ;
  502. evcyb = extr (redu chfa3 mmcyb) ptau 1 1 3 ;
  503. SI LGRAPH ;
  504. dess evcyb ;
  505. FINSI ;
  506. xtau15 = extr (extr (extr evcyb cour 1) ordo) 15 ;
  507. xtau15r = 148.71 ;
  508. erfati2 = abs ((xtau15r - xtau15)/xtau15r) ;
  509.  
  510. *______________________________________________________________________
  511. *
  512. * VALIDATION CODE A CODE
  513. *______________________________________________________________________
  514. *
  515. * Comparaison des resultats obtenus avec Cast3M a la reference WearBox :
  516. * Code Matlab - Abaqus - Python
  517. * Fretting Team - LTDS - Ecole Centrale Lyon
  518. *
  519. * Une premiere version du cas test comportait 20 cycles numeriques,
  520. * qui dure environ 7 minutes.
  521. * La seconde version du cas test comporte 5 cycles numeriques, qui
  522. * dure environ 1.5 minutes. Celle-ci a ete mise en place par soucis
  523. * de rapidite.
  524. *______________________________________________________________________
  525. *
  526. OPTI ECHO 0 ;
  527. BOITE_US = TAB1.'BOITES_USURE'. 1 ;
  528. EvUstot = BOITE_US.'EVO_USURE_TOT' ;
  529. Indice = 'DIME' EvUstot ;
  530. EvUC_N5 = BOITE_US.'EVO_USURE_TOT' . Indice ;
  531.  
  532. x_C3M5 = EXTR EvUC_N5 'ABSC' ;
  533. hu_C3M5 = EXTR EvUC_N5 'ORDO' ;
  534.  
  535. * Valeurs de reference provenant du code WearBox
  536. hu_R5_1 = PROG 0 0 0 0 0 0 0 0 0 0 0 0 0 ;
  537. hu_R5_2 = PROG -0.00000319 -0.00004986 -0.0000968 -0.0001257
  538. -0.00014598 -0.00015885 -0.00016597 -0.00016829 -0.00016597
  539. -0.00015885 -0.00014598 -0.0001257 -0.0000968 -0.00004986
  540. -0.00000319 ;
  541. hu_R5_3 = PROG 0 0 0 0 0 0 0 0 0 0 0 0 0 ;
  542.  
  543. hu_R5 = hu_R5_1 ET hu_R5_2 ET hu_R5_3 ;
  544. errHU_5 = (ABS hu_R5 ) - (ABS hu_C3M5) ;
  545.  
  546. EvEr_N5 = EVOL 'MANU' x_C3M5 errHU_5 ;
  547. EvHU_R5 = EVOL 'MANU' x_C3M5 hu_R5 ;
  548.  
  549. VolEr5 = INTG EvEr_N5 'ABSO' ;
  550. VolR5 = INTG EvHU_R5 'ABSO' ;
  551. PCT_Er5 = (VolEr5 / VolR5 * 100.) ;
  552.  
  553. * Comparaison au code WearBox (Matlab Abaqus Python)
  554. MESS ' ' ; MESS ' ' ;
  555. MESS '***************************' ;
  556. MESS '** CAS TEST CODE USURE **' ;
  557. MESS '***************************' ;
  558. MESS ' ' ; MESS ' ' ;
  559.  
  560. SI (PCT_Er5 <EG 2.) ;
  561. MESS ' CAS TEST DU CODE D USURE VALIDE (' PCT_Er5 '%)' ;
  562. SINON ;
  563. MESS ' ERREUR SEUIL DEPASSEE POUR LE CAS TEST DU CODE D USURE' ;
  564. MESS ' ERREUR SEUIL TOLEREE : 2%' ;
  565. MESS ' ERREUR CONSTATEE : ' PCT_Er5 '%' ;
  566. ERRE 5 ;
  567. FINSI ;
  568. SI (ERFATI2 <EG 0.05) ;
  569. ERRE 0 ;
  570. SINON ;
  571. MESS 'ERREUR OPERATEUR FATI' ;
  572. ERRE 5 ;
  573. FINSI ;
  574. FIN ;
  575.  
  576.  
  577.  

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