*========================================================== * * Simulation de torsion et/ou traction d'un cylindre * en fatigue * stage Bowen LIU (ENSTAPARISTECH) ete 2022 * revu jk148537 automne 2024 *========================================================== graph = faux ; *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% * Fonctions personnalisées *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% * Indice du point de gauss qui a la valeur maximale pour * un critère : * indice = ind_max(mchaml de fatigue, * critère utilisé * nombre de points) * Position actuelle pos = 1 ; * Position où la valeur est maximale pos_max = 1 ; * Initialisation de la comparaison repeter etape nbpt ; * Valeur actuelle * Mettre à jour l'indice et la valeur si une plus * grande valeur est trouvée. si (val >eg val_max); pos_max = pos ; val_max = val ; finsi; pos = pos + 1 ; fin etape ; finp pos_max ; *========================================================== * Construction de l'éprouvette *========================================================== * Nombre d'éléments * Nombre circulaire nc = 20 ; * nc = 30 ; nc = 10 ; * Nombre de hauteur nh = 100 ; nh = 50 ; * Géométrie (en m) p0 = 0. 0. 0. ; p1 = 0.01 0. 0.; p2 = 0. 0.01 0. ; p3 = -0.01 0. 0. ; p4 = 0. -0.01 0. ; h = 0. 0. 0.2 ; r1 = 1.d-2 ; * Arc "supérieure" passant par p1 p2 p3 * Arc "inférieure" * Deux arcs pour former un cercle s = (arc1 et arc2) ; * Section inférieure du cylindre * Plane : maillage d'une surface en cas de 3D p00 = point sec_inf proc p0 ; depl p00 moins p00 ; si (graph) ; trac sec_inf ; finsi ; si (graph) ; finsi ; *========================================================== * Définition du matériau *========================================================== * Comportement élastique linéaire isotrope * Limite d'endurance en fatigue selon TD4 * m1 = moins 1 fm1 = 410.e6 ; *f0 = 376.e6 ; tm1 = 260.e6 ; *========================================================== * Définition du chargement *========================================================== *========================================================== * Conditions aux limites * Points de la surface supérieure * Conditions limites * Mouvement selon uz de la surface inférieure * Blocage de la surface supérieure *========================================================== * Liste de chargement * Angle de décalage entre la torsion et la traction * sig_xy(t) = Ta * cos(t) * sig_11(t) = Siga * cos(t + decalage) decalage = 90. ; * Liste d'étape * Valeur d'abscisse initiale * Amplitude initiale * Axe x original (0 15 30 ... 360) * Amplitude originale de la torsion amp_tor = cos abs1 ; amp_t2 = abs (amp_tor) ; * Amplitude originale de la traction amp_tra = cos (abs1 + decalage) ; * Ajout de l'étape initiale abs1 = abs0 et abs1 ; amp_tor = amp0 et amp_tor ; amp_t2 = amp0 et amp_t2 ; amp_tra = amp0 et amp_tra ; *========================================================== * Torsion t3 = acos (1. - 2.d-4) ; xt3 = r1 * (1. - (cos t3)) ; yt3 = r1 * (sin t3) ; mess 't3 : ' t3 ; * Evolution des points x axe abs1 et y axe (prog...) si (graph) ; titr 'Torsion' ; finsi ; *========================================================== * Traction * Traction * Evolution des points x axe abs1 et y axe (prog...) si (graph) ; titr 'Traction' ; dess ev_tra ; finsi; *========================================================== * Application du chargement *========================================================== * Chargement de la torsion : amplitude * variation en temps * Chargement de la traction * Routine pas a pas trasi.modele = mo1 ; trasi.caracteristiques = ma1; trasi.blocages_mecaniques = cl_sup ; trasi.blocages_mecaniques = cl_sup et bl_z et bl_P1_x et bl_P3_x et bl_P1_y et bl_P3_y; trasi.chargement = ctor et ctra ; trasi.temps_calcules = abs1 ; pasapas trasi ; * Analyser graphiquement les résultats d'une table pasapas si (graph) ; titr 'Exploration' ; explorer trasi ; finsi; *========================================================== * Tableau de dessin pour Sines, Crossland et Deperrois * Chargement en X tab_dess = 'TABLE' ; *========================================================== * Extraire l'élément à étudier * Définir un point proche de la surface latérale m = mx 0. mz ; * Un point sur la surface du cylindre * Elément contenant ce point * Nombre de point de gauss de cet élément si (graph) ; titr 'Element choisi' ; trac el_cylin ; finsi; *========================================================== * Comparaison avec les critères de fatigue *========================================================== * Supprimer l'étape initiale * Nombre d'étapes "effectives" par DIMEsion d'une liste * Une boucle pour mettre à jour les deux listes * Position dans la liste destinataire pos_des = 0 ; repeter etape nb ; * Position dans la liste originale pos_ori = pos_des + 1 ; * Décalage d'une étape vers l'arrière trasi.temps.pos_des = trasi.temps.pos_ori ; * Prochaine position pos_des = pos_des + 1 ; fin etape ; * CHargement SImple 1 *graph = vrai ; *========================================================== * Critère de Dang Van beta_dv = tm1 ; alpha_dv = (tm1 - (fm1 / 2)) / (fm1 / 3) ; * alpha = alpha_dv beta = beta_dv type 'caracteristiques' stresses ; * CHargement FAtigue Dang Van * Réduire le résultat au élément à étudier * Indice où la valeur est maximale ind_dv = ind_max chfa_dv dvkp nbpg; * VALeur de Dang Van * TRAJectoir Dang Van mess ' ' ; mess '##################################################' ; mess '# Cast3m donne : ' val_dv ; mess '##################################################' ; mess ' ' ; si (graph) ; titr 'Dang Van' ; finsi; * 11/2024 Cast3m donne : v0_dv = 1.16725E-02 ; er1 = abs((v0_dv - val_dv)/v0_dv) ; *========================================================== * Critère de Papadopoulos beta_pa = tm1 ; alpha_pa = (tm1 - (fm1 / 1.732)) / (fm1 / 3) ; type 'caracteristiques' stresses ; ind_pa = ind_max chfa_pa papa nbpg; mess ' ' ; mess '##################################################' ; mess '# Cast3m donne : ' val_pa ; mess '##################################################' ; mess ' ' ; * 11/2024 v0_pa = 6.26156E-03 si (graph) ; titr 'Papadopoulos' ; finsi; *========================================================== * Critère de Sines * Détermination de f0 à partir de tm1 et fm1 par Dang Van f0 = (2 * tm1 * fm1) / (4 * tm1 - fm1) ; beta_si = tm1 ; alpha_si = (tm1 - (f0 / 1.732)) / (f0 / 3) ; type 'caracteristiques' stresses ; ind_si = ind_max chfa_si sine nbpg; si (graph) ; titr 'Sines' ; finsi ; mess ' ' ; mess '##################################################' ; mess '# Attention ! ' ; mess '# ' ; mess '# Cast3m donne : ' val_si ; mess '##################################################' ; mess ' ' ; * 11/2024 v0_si = -6.76817E-02 *========================================================== * Critère de Crossland beta_cr = tm1 ; alpha_cr = (tm1 - (fm1 / 1.732)) / (fm1 / 3) ; type 'caracteristiques' stresses ; ind_cr = ind_max chfa_cr cros nbpg; si (graph) ; titr 'Crossland' ; finsi ; mess ' ' ; mess '##################################################' ; mess '# Cast3m donne : ' val_cr ; mess '##################################################' ; mess ' ' ; * 11/2024 v0_cr = 6.26156E-03 *========================================================== * Critère de Deperrois (à vérifier s'il existe) beta_dc = tm1 ; alpha_dc = (tm1 - (fm1 / 1.732)) / (fm1 / 3) ; type 'caracteristiques' stresses ; ind_dc = ind_max chfa_dc dc nbpg; si (graph) ; titr 'Deperrois' ; finsi ; mess ' ' ; mess '##################################################' ; mess '# Cast3m donne : ' val_dc ; mess '##################################################' ; mess ' ' ; * 11/2024 Cast3m donne : v0_dc = 9.69946E-02 ; er5 = abs((v0_dc - val_dc)/v0_dc) ; si ((er1 < 0.05 ) et (er5 < 0.05)) ; sinon ; finsi ; *opti donn 5 ; fin;
© Cast3M 2003 - Tous droits réservés.
Mentions légales