Test name
dy_devo3
Calculation type
MECHANICS DYNAMICS 3D
IMPACT, LINKAGE CIRCLE-PLANE-FRICTION
Topic
A wheel subjected to a torsional moment
A wheel of 1 meter diameter is clamped by 2 planes. The wheel is subjected to a torsional moment.
The linkages used are a circle-point with taking into consideration the friction.
Goal
Find the rotation around Z-axis.
Reference
Version
97' customer version
Model description
Test dy_devo3 Results
Results
CASTEM figures
* Test Dy_devo3.dgibi: Jeux de données * * ------------------------------------ * * * * si GRAPH = N, les graphiques ne sont pas affichés * si GRAPH différent de N, tous les graphiques * sont affichés * GRAPH = 'N' ; * SAUT PAGE ; *-----------------------------------------------------* * DY_DEVO3 * *-----------------------------------------------------* * * * Tests de l'op{rateur DYNE option DE_VOGELAERE * * __________________________________________ * * * * * * Une roue de diamètre 1 mètre bloquée par 2 plans * * On applique à la roue un moment Mz * * 2 liaisons CERCLE_PLAN_FROTTEMENT * * * *-----------------------------------------------------* * OPTION ECHO 0 ; TEMPS ; OPTION ELEM SEG2 DIME 3 ; * * Définition géométrie * P1 = 0. 0. 0. ; * * Base modale * CHP_M1 = MANU CHPO 6 P1 'UX' 1.0 'UY' 0.0 'UZ' 0.0 'RX' 0.0 'RY' 0.0 'RZ' 0.0; CHP_M2 = MANU CHPO 6 P1 'UX' 0.0 'UY' 1.0 'UZ' 0.0 'RX' 0.0 'RY' 0.0 'RZ' 0.0; CHP_M3 = MANU CHPO 6 P1 'UX' 0.0 'UY' 0.0 'UZ' 0.0 'RX' 0.0 'RY' 0.0 'RZ' 1.0; * TBAS = TABLE 'BASE_MODALE' ; TBAS . 'MODES' = TABLE 'BASE_DE_MODES' ; TBAS . 'MODES' . 'MAILLAGE' = P1 ; TBAS . 'MODES' . 1 = TABLE 'MODE' ; TBAS . 'MODES' . 1 . 'POINT_REPERE' = ( 0 0 0 ) ; TBAS . 'MODES' . 1 . 'FREQUENCE' = 0.0 ; TBAS . 'MODES' . 1 . 'MASSE_GENERALISEE' = 1.0 ; TBAS . 'MODES' . 1 . 'DEFORMEE_MODALE' = CHP_M1 ; TBAS . 'MODES' . 2 = TABLE 'MODE' ; TBAS . 'MODES' . 2 . 'POINT_REPERE' = ( 0 0 0 ) ; TBAS . 'MODES' . 2 . 'FREQUENCE' = 0.0 ; TBAS . 'MODES' . 2 . 'MASSE_GENERALISEE' = 1.0 ; TBAS . 'MODES' . 2 . 'DEFORMEE_MODALE' = CHP_M2 ; TBAS . 'MODES' . 3 = TABLE 'MODE' ; TBAS . 'MODES' . 3 . 'POINT_REPERE' = ( 0 0 0 ) ; TBAS . 'MODES' . 3 . 'FREQUENCE' = 0.0 ; TBAS . 'MODES' . 3 . 'MASSE_GENERALISEE' = 1.0 ; TBAS . 'MODES' . 3 . 'DEFORMEE_MODALE' = CHP_M3 ; * * Champ de force * XFOR = 1000.0 ; CHP_F1 = MANU CHPO 3 P1 'MX' 0.0 'MY' 0.0 'MZ' XFOR ; EVO_F1 = EVOL MANU ( PROG -1. 10. ) ( PROG 1. 1. ) ; CHA_F1 = CHARGE 'FORC' CHP_F1 EVO_F1 ; TCHARG = TABLE 'CHARGEMENT' ; TCHARG . 'BASE_A' = PJBA TBAS CHA_F1 ; * *--- Définition des liaisons * TLIA1 = TABLE 'LIAISON' ; TLB1 = TABLE 'LIAISON_B' ; TLIA1 . 'LIAISON_B' = TLB1 ; * * Liaison CERCLE_PLAN_FROTTEMENT avec amortissement * RAY_SUP = 1.0 ; XNU = 0.4 ; XRAID = 4.0E6 ; RAID_T = ( 10.0 * XRAID ) / ( RAY_SUP ** 2 ) ; AMOR_T = ( RAID_T * 1.0 ) ** 0.5 ; TL1 = TABLE 'LIAISON_ELEMENTAIRE' ; TL1.'TYPE_LIAISON' = MOT 'CERCLE_PLAN_FROTTEMENT' ; TL1.'SUPPORT' = P1 ; TL1.'JEU' = -0.00025 ; TL1.'NORMALE' = ( 0 -1 0 ) ; TL1.'RAIDEUR' = XRAID ; TL1.'RAYON_SUPPORT' = RAY_SUP ; TL1.'COEFFICIENT_GLISSEMENT' = XNU ; TL1.'COEFFICIENT_ADHERENCE' = XNU ; TL1.'RAIDEUR_TANGENTIELLE' = RAID_T ; TL1.'AMORTISSEMENT_TANGENTIEL' = AMOR_T ; TL1.'AMORTISSEMENT' = 0.0 ; TL2 = TABLE 'LIAISON_ELEMENTAIRE' ; TL2.'TYPE_LIAISON' = MOT 'CERCLE_PLAN_FROTTEMENT' ; TL2.'SUPPORT' = P1 ; TL2.'JEU' = -0.00025 ; TL2.'NORMALE' = ( 0 1 0 ) ; TL2.'RAIDEUR' = XRAID ; TL2.'RAYON_SUPPORT' = RAY_SUP ; TL2.'COEFFICIENT_GLISSEMENT' = XNU ; TL2.'COEFFICIENT_ADHERENCE' = XNU ; TL2.'RAIDEUR_TANGENTIELLE' = RAID_T ; TL2.'AMORTISSEMENT_TANGENTIEL' = AMOR_T ; TL2.'AMORTISSEMENT' = 0.0 ; * TLB1 . 1 = TL1 ; TLB1 . 2 = TL2 ; * *--- Définition des résultats en sortie * TSORT = TABLE 'SORTIE' ; TSOR1 = TABLE 'SORTIE' ; TSORT . 'VARIABLE' = TSOR1 ; TSOR1 . 'DEPLACEMENT' = FAUX ; TSOR1 . 'VITESSE' = FAUX ; * TSOR2 = TABLE 'SORTIE' ; TSORT . 'LIAISON_B' = TSOR2 ; TSOR2 . TL1 = VRAI ; * * Temps * PDT = 4.0E-5 ; NP1 = 5000 ; NP2 = 5000 ; NINS = 20 ; * *------ Opérateur DYNE ------ * TRESU1 = DYNE 'DIFFERENCES_CENTREES' TBAS TCHARG TSORT TLIA1 NP1 PDT NINS ; * TINIT = TABLE 'INITIAL' ; TINIT.'REPRISE' = TRESU1.'REPRISE' ; TRESU2 = DYNE 'DE_VOGELAERE' TBAS TCHARG TSORT TLIA1 TINIT NP2 PDT NINS ; * * Tracé des courbes * LISTE1 = TRESU1.'TEMPS_DE_SORTIE' ; LISTE2 = TRESU2.'TEMPS_DE_SORTIE' ; * TITRE '***** - TL1- FORCE DE CHOC NORMALE *****' ; EVO_FN1 = EVOL MANU LISTE1 TRESU1.TL1.'FORCE_DE_CHOC_NORMALE' ; EVO_FN2 = EVOL MANU LISTE2 TRESU2.TL1.'FORCE_DE_CHOC_NORMALE' ; EVO_FN = CONCAT EVO_FN1 EVO_FN2 ; * TITRE '***** - TL1- FORCE DE CHOC TANGENTIELLE *****' ; EVO_FT1 = EVOL MANU LISTE1 TRESU1.TL1.'FORCE_DE_CHOC_TANGENTIELLE' ; EVO_FT2 = EVOL MANU LISTE2 TRESU2.TL1.'FORCE_DE_CHOC_TANGENTIELLE' ; EVO_FT = CONCAT EVO_FT1 EVO_FT2 ; * TITRE '***** - TL1- PUISSANCE USURE *****' ; EVO_PU1 = EVOL MANU LISTE1 TRESU1.TL1.'PUISSANCE_USURE_INSTANTANEE' ; EVO_PU2 = EVOL MANU LISTE2 TRESU2.TL1.'PUISSANCE_USURE_INSTANTANEE' ; EVO_PU = CONCAT EVO_PU1 EVO_PU2 ; * TITRE '***** - TL1- VX POINT DE CONTACT *****' ; EVO_VX1 = EVOL MANU LISTE1 TRESU1.TL1.'VX_POINT_CONTACT' ; EVO_VX2 = EVOL MANU LISTE2 TRESU2.TL1.'VX_POINT_CONTACT' ; EVO_VX = CONCAT EVO_VX1 EVO_VX2 ; * TITRE '***** - TL1- MZ POINT FIBRE NEUTRE *****' ; EVO_MZ1 = EVOL MANU LISTE1 TRESU1.TL1.'MZ_POINT_FIBRE_NEUTRE' ; EVO_MZ2 = EVOL MANU LISTE2 TRESU2.TL1.'MZ_POINT_FIBRE_NEUTRE' ; EVO_MZ = CONCAT EVO_MZ1 EVO_MZ2 ; * TITRE '***** - TL1- RZ POINT FIBRE NEUTRE *****' ; EVO_RZ1 = EVOL MANU LISTE1 TRESU1.TL1.'RZ_POINT_FIBRE_NEUTRE' ; EVO_RZ2 = EVOL MANU LISTE2 TRESU2.TL1.'RZ_POINT_FIBRE_NEUTRE' ; EVO_RZ = CONCAT EVO_RZ1 EVO_RZ2 ; * SI ( NEG GRAPH 'N' ) ; DESS EVO_FN 'MIMA' ; DESS EVO_FT 'MIMA' ; DESS EVO_PU 'MIMA' ; DESS EVO_VX 'MIMA' ; DESS EVO_MZ 'MIMA' ; DESS EVO_RZ 'MIMA' ; FINSI ; * LIS_RZ = EXTRAIRE EVO_RZ 'ORDO' ; LISTEM = EXTRAIRE EVO_RZ 'ABSC' ; D = EXTRAIRE LIS_RZ 501 ; T = EXTRAIRE LISTEM 501 ; SAUT PAGE ; MESS 'valeur du temps :' T ; MESS 'valeur de la rotation autour de Z :' D ; SAUT 2 LIGNES ; * TEMPS ; * * Code de bon fonctionnement * DEPREF = 100. * T * T ; RESI = ABS ( ( D - DEPREF ) / DEPREF ) ; SI ( RESI <EG 1E-2 ) ; ERRE 0 ; SINON ; ERRE 5 ; FINSI ; * FIN ;
Test dy_devo3 Comments
TL1 = TABLE 'LIAISON_ELEMENTAIRE' ;
TL1.'TYPE_LIAISON' = MOT 'CERCLE_PLAN_FROTTEMENT' ;
TL1.'SUPPORT' = P1 ;
TL1.'JEU' = -0.00025 ;
TL1.'NORMALE' = ( 0 -1 0 ) ;
TL1.'RAIDEUR' = XRAID ;
TL1.'RAYON_SUPPORT' = RAY_SUP ;
TL1.'COEFFICIENT_GLISSEMENT' = XNU ;
TL1.'COEFFICIENT_ADHERENCE' = XNU ;
TL1.'RAIDEUR_TANGENTIELLE' = RAID_T ;
TL1.'AMORTISSEMENT_TANGENTIEL' = AMOR_T ;
TL1.'AMORTISSEMENT' = 0.0 ;
The linkage CERCLE_PLAN_FROTTEMENT is used for impacts of a circle onto a semi-infinite medium. The circle is simply described by its center point (TL1.'SUPPORT') and its radius
(TL1.'RAYON_SUPPORT').
TL1.'JEU' is the gap between a point of the circle and the medium. Here the gap is negative : it means the medium penetrates into the circle.
The linkage takes into consideration the friction, so specific data must be given to describe the imaginary spring : the impact stiffness (TL1.'RAIDEUR'), the tangential stiffness (TL1.'RAIDEUR_TANGENTIELLE'), the sliding coefficient (TL1.'COEFFICIENT_GLISSEMENT'), the adherence stress coefficient (TL1.'COEFFICIENT_ADHERENCE'), the impact damping (TL1.'AMORTISSEMENT') and the tangential damping (TL1.'AMORTISSEMENT_TANGENTIEL'). Note that the impact damping is optional.
TL1 = TABLE 'LIAISON_ELEMENTAIRE' ;
TL1.'TYPE_LIAISON' = MOT 'CERCLE_PLAN_FROTTEMENT' ;
TL1.'SUPPORT' = P1 ;
...
TL1.'NORMALE' = ( 0 -1 0 ) ;
...
TL2 = TABLE 'LIAISON_ELEMENTAIRE' ;
TL2.'TYPE_LIAISON' = MOT 'CERCLE_PLAN_FROTTEMENT' ;
TL2.'SUPPORT' = P1 ;
...
TL2.'NORMALE' = ( 0 1 0 ) ;
The difference between TL1 and TL2 is only made by the definition of the normals TL1.'NORMALE' and TL2.'NORMALE'.
TSORT = TABLE 'SORTIE' ;
TSOR1 = TABLE 'SORTIE' ;
TSORT . 'VARIABLE' = TSOR1 ;
TSOR1 . 'DEPLACEMENT' = FAUX ;
TSOR1 . 'VITESSE' = FAUX ;
**
TSOR2 = TABLE 'SORTIE' ;
TSORT . 'LIAISON_B' = TSOR2 ;
TSOR2 . TL1 = VRAI ;
The output table will contain only the results related to TL1 linkage.
LISTE1 = TRESU1.'TEMPS_DE_SORTIE' ;
LISTE2 = TRESU2.'TEMPS_DE_SORTIE' ;
...
TITRE '***** - TL1- RZ POINT OF MEDIAN LINE *****' ;
EVO_RZ1 = EVOL MANU LISTE1 TRESU1.TL1.'RZ_POINT_FIBRE_NEUTRE' ;
EVO_RZ2 = EVOL MANU LISTE2 TRESU2.TL1.'RZ_POINT_FIBRE_NEUTRE' ;
EVO_RZ = CONCAT EVO_RZ1 EVO_RZ2 ;
...
LIS_RZ = EXTRAIRE EVO_RZ 'ORDO' ;
LISTEM = EXTRAIRE EVO_RZ 'ABSC' ;
D = EXTRAIRE LIS_RZ 501 ;
T = EXTRAIRE LISTEM 501 ;
The computation is done in two parts: thus the results are separate (some in TRESU1 and others in TRESU2). The CONCAT operator performs the joining up of two objects (of EVOLUTION type).
To obtain a specific value from the EVO_RZ object, it is first necessary to extract every list of reals from the EVOLUTION object (EVO_RZ) : the EXTRAIRE operator extracts the lists of reals related to the abscissas ('ABSC') and the ordinates ('ORDO'). Then you can extract the required value from the obtained list of reals : 501 is the row of the required value in the list.