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

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