* fichier : usure.dgibi * * * Presentation du cas-test: * ------------------------- * * Modelisation 2D du contact-frottement (de type Coulomb) entre un * cylindre et un plan. et prise en compte du profil d'usure. * Comparaison code a code avec WearBox du LTDS (S.Fouvry et S.Garcin) * Code Matlab - Abaqus - Python * Fretting Team - LTDS - Ecole Centrale Lyon * * [Collaboration LTDS - These E. Marc] * * Ce cas-test appelle la procedure USURE *______________________________________________________________________ * DEFINITION D'UNE BOITE D USURE *______________________________________________________________________ * * Table contenant toutes les informations pour l'usure * * BOX1 = TABL ; * -> Creation de la boite d'usure a stocker dans la table PASAPAS * * Indices a definir pour chaque boite d'usure i : * * BOX1. i .'VOLUME_REPARTITION' * -> Volume sous la surface usee pour "repartir" l'usure. * * BOX1. i .'SURFACE_APPLICATION' * -> Surface usee (ou sera appliquee l'usure). * * BOX1. i .'COEFFICIENT_USURE' * -> Valeur du coefficient d'usure (en mm3/mJ). * * Indices pour definir les cycles d'usure dans une table 'DONNEES' * * BOX1.'DONNEES'.'T_DEBUT_USURE' * -> Temps ou demarre l'usure. * * BOX1.'DONNEES'.'PERIODE' * -> Periode d'un cycle d'usure. * * BOX1.'DONNEES'.'NB_CYCLES' * -> Nombre de cycle d'usure * * BOX1.'DONNEES'.'ACCELERATION' * -> Valeur du coefficient d'acceleration (sans unite). * * BOX1.'DONNEES'.'INCREMENTS_CYCLE' * -> Nombre de point calcule par cycle * * Remarques : * 1/ On parle de SURFACE et de VOLUME mais puisqu'il s'agit d'un * cas-test bidimensionnel, il convient de remplacer ces termes * respectivement par ligne et surface. * * 2/ Un indice 'BOITES_USURE' de la table de PASAPAS sera defini * comme etant un objet de type TABLE. * Soit TAB1, la table de PASAPAS, alors * TAB1.'BOITES_USURE' = BOX1 ; * * 3/ Les dimensions sont donnees ici en mm * *______________________________________________________________________ * * DONNEES UTILES *______________________________________________________________________ * * Donnees a renseigner correspondant aux conditions experimentales a simuler * * Rayon du cylindre (mm) : rayon * Generatrice du cylindre (dimension hors plan) (mm) : genCyl * Caracteristiques materiaux (MPa) : YoungCyl, YoungPln, NuCyl, NuPlan * Coefficient de frottement : MuContact * Debattement maximal impose (mm) : DltEtoil * Periode du cycle de fretting (s) : periode * Force normale imposee (N) : ForceN * Coefficients d usure energetiques (mm3/mJ) : ALPHA1 et ALPHA2 * Direction d application de l usure * Facteur d acceleration : BETA *______________________________________________________________________ * * OPTION DE CALCUL *______________________________________________________________________ * * Definition des options de calcul * Pieces massives => Deformations planes * OPTI DEBU 1 ; * LGRAPH = FAUX ; * Booleen pour n'effectuer que le trace du maillage (pas de resolution) OnlyMesh = FAUX ; * Maillage grossier (en dehors de la zone WearBox, elle non modifiee) YESFATMS = FAUX ; * Prendre en compte l'usure du plan ? OuiUsPla = VRAI ; * Prendre en compte l'usure du cylindre ? OuiUsCyl = FAUX ; *______________________________________________________________________ * * MAILLAGE *______________________________________________________________________ * * - DIMENSIONS GEOMETRIQUES DU MODELE (en mm !!!!!) * CT -> Cylindre Total BUC -> Boite Usure Cylindre * PT -> Plan Total BUP -> Boite Usure Plan * FineMS correspond a la taille des elements FineMS = 0.010 ; rayon = 4.8 ; LgrCT = 0.75 ; EprCT = 0.25 ; LgrPT = 0.75 ; EprPT = 0.25 ; LgrBUC = 0.4 ; EprBUC = 0.125 ; LgrBUP = 0.4 ; EprBUP = 0.125 ; * FCYL et FPLA sont des facteurs permettant de jouer sur la densite du * maillage dans la boite d'usure. Ils ne sont pas necessairement egaux * Ce sont des facteurs multiplicatifs de FineMS. FCYL = 1.0 ; FPLA = 1.0 ; * * - MAILLAGE DU CYLINDRE * -> Dimensions, nombre et taille des elements pour le cylindre LgrBU = (( ENTI 'SUPERIEUR' (LgrBUC/FineMS/2) ) * FineMS * 2) ; EprBU = (( ENTI 'SUPERIEUR' (EprBUC/FineMS ) ) * FineMS ) ; NLgrBU = 2* (ENTI 'PROCHE' (LgrBU / FineMS / 2)) ; * -> Dimensions du cylindre totale AlphaCT = ASIN ((LgrCT/2.)/rayon) ; GapCT = (1. - (COS AlphaCT) ) * rayon ; HtrCT = GapCT + EprCT ; * -> Dimensions de la boite d usure, partie cylindre AlphaBU = ASIN ((LgrBU/2.)/rayon) ; GapBU = (1. - (COS AlphaBU) ) * rayon ; HtrBU = GapBU + EprBU ; * -> Points P0 = 0.0 0.0 ; PCEN = 0.0 rayon ; PA = (-1*LgrCT/2) GapCT ; PB = (-1*LgrBU/2) GapBU ; PC = ( LgrBU/2) GapBU ; PD = ( LgrCT/2) GapCT ; PE = ( LgrCT/2) HtrCT ; PF = (-1*LgrCT/2) HtrCT ; PG = ( LgrBU/2) HtrBU ; PH = (-1*LgrBU/2) HtrBU ; * -> Lignes * -> Contour interieur (identique que le maillage soit grossier ou non) CntrInt = LCG ET LGH ET LHB ; * -> Surface boite d'usure (partie en contact-frottement) SI YESFATMS ; NEprBU = ENTI 'PROCHE' (EprBU / FineMS) ; GrosMSVC = (EprCT / NEprBU) * 2. ; SINON ; 'SI' ('>EG' FCYL 1.51) ; RCYL = ((LgrCT - LgrBU) / 2.)/ EprBU ; 'SINON' ; RCYL = 2.0 ; 'FINSI' ; FINSI ; * -> Contour exterieur (depend si le maillage est grossier ou non) CntrExt = LDE ET LEF ET LFA ; * -> Surface du reste du cylindre ( contour interieur et exterieur) SI YESFATMS ; SINON ; FINSI ; * -> Surface totale du cylindre SurfCyl = SrfBUC ET SrfCT ; * - MAILLAGE DU PLAN * -> Dimensions, nombre et taille des elements pour le plan LgrBU = (( ENTI 'SUPERIEUR' (LgrBUP/FineMS/2) ) * FineMS * 2) ; EprBU = (( ENTI 'SUPERIEUR' (EprBUP/FineMS ) ) * FineMS ) ; NLgrBU = 2* (ENTI 'PROCHE' (LgrBU / FineMS / 2)) ; * -> Points PI = (-1*LgrPT/2) 0.0 ; PJ = (-1*LgrBU/2) 0.0 ; PK = ( LgrBU/2) 0.0 ; PK = ( LgrBU/2) -0.00 ; PL = ( LgrPT/2) 0.0 ; PM = ( LgrPT/2) (-1.*EprPT) ; PN = (-1*LgrPT/2) (-1.*EprPT) ; PO = ( LgrBU/2) (-1.*EprBU) ; PP = (-1*LgrBU/2) (-1.*EprBU) ; * -> Lignes * -> Contour interieur (identique que le maillage soit grossier ou non) CntrInt = LKO ET LOP ET LPJ ; * -> Surface boite d'usure (partie en contact-frottement) SI YESFATMS ; NEprBU = ENTI 'PROCHE' (EprBU / FineMS) ; GrosMSVP = (EprPT / NEprBU) * 4. ; SINON ; 'SI' ('>EG' FPLA 1.51) ; RPLA = ((LgrPT - LgrBU) / 2.)/ (HtrBU - GapBU) ; 'SINON' ; RPLA = 2.0 ; 'FINSI' ; FINSI ; * -> Contour exterieur (depend si le maillage est grossier ou non) CntrExt = LLM ET LMN ET LNI; * -> Surface du reste du plan SI YESFATMS ; SINON ; FINSI ; * -> Surface totale du plan SurfPlan = SrfBUP ET SrfPT ; *SrfBUP = SurfPlan INTE SrfBUP ; * * RECUPERATION DES ZONES DE MAILLAGE UTILES * -> Cylindre * -> Plan * SI OnlyMesh ; FINSI ; * * Creation du maillage de contact **MeshCntc ='IMPO' 'MAIL' 'MESC' CBC (INVE LJK) ; **MeshCntc = MeshCntc 'COUL' 'JAUN' ; SI OnlyMesh ; ** TRAC (MeshCntc ET (CntrCyl ET CntrPlan) ET (SurfCyl ET SurfPlan)) FINSI ; *______________________________________________________________________ * * MODELES ET MATERIAUX *______________________________________________________________________ * * ATTENTION LES DIMENSIONS DE NOS PIECES SONT EN MM YoungCyl = 200000 ; NuCyl = 0.3 ; YoungPln = 200000 ; NuPlan = 0.3 ; MuContac = 0.9; * * * *______________________________________________________________________ * * CONDITIONS AUX LIMITES *______________________________________________________________________ * BlocPlan = (BlcXPlan ET BlcYPlan) ; BlocCyl = LinkHauC ET YcommunC ; BloTot = BlocPlan ET BlocCyl ; *______________________________________________________________________ * * CHARGEMENTS ET INSTANTS CALCULES *______________________________________________________________________ * DltEtoil = 0.004 ; NCyReel = 2500 ; BETA = 500 ; t_0 = 1.0 ; periode = 1. ; * * Instants de debut et de fin des cycles d'usure T_INI_US = (t_0 + (periode/4.)) ; T_FIN_US = T_INI_US + (NCyReel * periode) ; * Evolutions pour les chargements TREPR = T_INI_US ; Demiper = periode / 2. ; REPE BTPS NCyReel ; TINTE = TREPR + Demiper ; TREPR = TREPR + periode ; FIN BTPS ; * - Chargement en force pour mettre en contact les deux solides ForceN = 60. ; ValPresN = ForceN / LgrCT; * - Chargement en deplacement impose qui fait frotter les deux solides * - Liste des instants a calculer 1.2500 1.2812 1.3125 1.3438 1.3750 1.4688 1.5625 1.6562 1.7500 1.7812 1.8125 1.8438 1.8750 1.9688 2.0625 2.1562 2.2500 2.2777 2.3053 2.3330 2.3606 2.4580 2.5553 2.6527 2.7500 2.7777 2.8053 2.8330 2.8606 2.9580 3.0553 3.1527 3.2500 3.2817 3.3134 3.3451 3.3768 3.4701 3.5634 3.6567 3.7500 3.7817 3.8134 3.8451 3.8768 3.9701 4.0634 4.1567) ; 4.2500 4.2794 4.3087 4.3381 4.3675 4.4631 4.5587 4.6544 4.7500 4.7794 4.8087 4.8381 4.8675 4.9631 5.0587 5.1544 5.2500 5.2794 5.3087 5.3381 5.3675 5.4631 5.5587 5.6544 5.7500 5.7794 5.8087 5.8381 5.8675 5.9631 6.0587 6.1544 6.2500) ; * NBINCR = 16 ; **VALPAS = periode / NBINCR ; **LTPS = 'PROG' 0. PAS 0.125 t_0 1.0312 1.0625 1.1562 ; **LTPS = LTPS 'ET' ('PROG' 1.25 'PAS' VALPAS 6.25) ; *______________________________________________________________________ * * DEFINITION DE LA BOITE D USURE *______________________________________________________________________ * * Coefficient pour l'usure (alpha en mm3/mJ) ALPHA = 1.e-8 ; * * -> Boite d usure pour le plan BOX1.'VOLUME_REPARTITION' = SrfBUP ; BOX1.'COEFFICIENT_USURE' = ALPHA ; * -> Boite d usure pour le cylindre BOX2.'VOLUME_REPARTITION' = SrfBUC ; BOX2.'COEFFICIENT_USURE' = ALPHA ; ************************************** ** ENCAPSULAGE DES BOITES D'USURE ** ************************************** NbBoxUs = 0 ; YesUsur = VRAI ; SI OuiUsCyl ; NbBoxUs = NbBoxUs + 1 ; FINSI ; SI OuiUsPla ; NbBoxUs = NbBoxUs + 1 ; FINSI ; BOX_USUR.'DONNEES' = 'TABLE' ; BOX_USUR.'DONNEES'.'T_DEBUT_USURE' = T_INI_US ; BOX_USUR.'DONNEES'.'PERIODE' = periode ; BOX_USUR.'DONNEES'.'NB_CYCLES' = NCyReel ; BOX_USUR.'DONNEES'.'ACCELERATION' = BETA ; BOX_USUR.'DONNEES'.'INCREMENTS_CYCLE' = NBINCR ; SI (NbBoxUs EGA 2) ; BOX_USUR. 1 = BOX1 ; BOX_USUR. 2 = BOX2 ; SINON ; SI OuiUsCyl ; BOX_USUR. 1 = BOX2 ; SINON ; SI OuiUsPla ; BOX_USUR. 1 = BOX1 ; SINON ; YesUsur = FAUX ; FINSI ; FINSI ; FINSI ; *______________________________________________________________________ * * DEFINTION DE LA TABLE DE PASAPAS *______________________________________________________________________ * TAB1.'MODELE' = ModeCyl ET ModePlan ET ModeCntc ; TAB1.'CARACTERISTIQUES' = MateCyl ET MatePlan ET MateCntc ; TAB1.'CHARGEMENT' = CharFret ET CharNorm ; TAB1.'BLOCAGES_MECANIQUES' = BloTot ; TAB1.'GRANDS_DEPLACEMENTS' = VRAI ; TAB1.'TEMPS_CALCULES' = LTPS ; TAB1.'BOITES_USURE' = BOX_USUR ; SI YesUsur ; TAB1.'PROCEDURE_PERSO1' = VRAI ; SINON ; TAB1.'PROCEDURE_PERSO1' = FAUX ; FINSI ; * Tmp = TEMPS 'HORL' ; *______________________________________________________________________ * * PROCEDURE UTILISATEUR PERSO1 *______________________________________________________________________ * DEBP PERSO1 T1*'TABLE' ; T1 = USURE T1 ; FINP T1; *______________________________________________________________________ * * APPEL A LA PROCEDURE PASAPAS *______________________________________________________________________ * PASAPAS Tab1 ; *explorer tab1 ; * kich : coefficients arbitraires 'APAP' -0.34 'BPAP' 19.8e1 'ASIN' -0.35 'BSIN' 19.7e1 'ACRO' -0.36 'BCRO' 19.6e1 'A_DC' -0.37 'B_DC' 19.5e1 type 'CARACTERISTIQUES' stresses ; SI LGRAPH ; FINSI ; *chfa2 = FATI (ModeCyl ET ModePlan) chaus1 cafaus 5. 6.5 'PAPA' ; p_cyb = -8.00180E-02 1.09364E-02 ; p_cyb = point Surfcyl proc p_cyb ; SI LGRAPH ; dess evcyb ; FINSI ; xtau15r = 148.71 ; erfati2 = abs ((xtau15r - xtau15)/xtau15r) ; *______________________________________________________________________ * * VALIDATION CODE A CODE *______________________________________________________________________ * * Comparaison des resultats obtenus avec Cast3M a la reference WearBox : * Code Matlab - Abaqus - Python * Fretting Team - LTDS - Ecole Centrale Lyon * * Une premiere version du cas test comportait 20 cycles numeriques, * qui dure environ 7 minutes. * La seconde version du cas test comporte 5 cycles numeriques, qui * dure environ 1.5 minutes. Celle-ci a ete mise en place par soucis * de rapidite. *______________________________________________________________________ * BOITE_US = TAB1.'BOITES_USURE'. 1 ; EvUstot = BOITE_US.'EVO_USURE_TOT' ; EvUC_N5 = BOITE_US.'EVO_USURE_TOT' . Indice ; * Valeurs de reference provenant du code WearBox -0.00014598 -0.00015885 -0.00016597 -0.00016829 -0.00016597 -0.00015885 -0.00014598 -0.0001257 -0.0000968 -0.00004986 -0.00000319 ; hu_R5 = hu_R5_1 ET hu_R5_2 ET hu_R5_3 ; errHU_5 = (ABS hu_R5 ) - (ABS hu_C3M5) ; PCT_Er5 = (VolEr5 / VolR5 * 100.) ; * Comparaison au code WearBox (Matlab Abaqus Python) SI (PCT_Er5 <EG 2.) ; SINON ; MESS ' ERREUR SEUIL DEPASSEE POUR LE CAS TEST DU CODE D USURE' ; MESS ' ERREUR CONSTATEE : ' PCT_Er5 '%' ; FINSI ; SI (ERFATI2 <EG 0.05) ; SINON ; FINSI ; FIN ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales