* fichier : dy_devo3.dgibi
* 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' ;
d_pasa = vrai ;
*
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 ;
ma1 = manu poi1 (0. 0. 0.) ;
mo1 = mode ma1 mecanique elastique modal ;
ca1 = mate mo1 freq 0. mass 1.0 defo 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 ;
ma2 = manu poi1 (0. 0. 0.) ;
mo2 = mode ma2 mecanique elastique modal ;
ca2 = mate mo2 freq 0. mass 1.0 defo 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 ;
ma3 = manu poi1 (0. 0. 0.) ;
mo3 = mode ma3 mecanique elastique modal ;
ca3 = mate mo3 freq 0. mass 1.0 defo chp_m3 ;
mo_moda = mo1 et mo2 et mo3 ;
ca_moda = ca1 et ca2 et ca3 ;
*
* 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 ;
cha1 = PJBA TBAS CHA_F1 ;
cha2 = pjba cha_f1 mo_moda ca_moda ;
*
*--- 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 ;
macepl1 = manu poi1 p1 ;
mocepl1 = mode macepl1 liaison cercle_plan frottement ;
tcepl1= table ; tcepl1 . mocepl1 = vrai ;
cacepl1 = mate mocepl1 NORM (0. -1. 0.) JEU -0.00025
RAID xraid RAYS ray_sup GLIS xnu ADHE xnu RTAN raid_t
ATAN amor_t AMOR 0. SORT tcepl1 ;
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 ;
macepl2 = manu poi1 p1 ;
mocepl2 = mode macepl2 liaison cercle_plan frottement ;
cacepl2 = mate mocepl2 NORM (0. 1. 0.) JEU -0.00025
RAID xraid RAYS ray_sup GLIS xnu ADHE xnu RTAN raid_t
ATAN amor_t AMOR 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 ------
*
tabdyn = table 'PASAPAS' ;
tabdyn . modele = mo_moda et mocepl1 et mocepl2 ;
tabdyn . caracteristiques = ca_moda et cacepl1 et cacepl2 ;
tabdyn . chargement = cha2 ;
si d_pasa ;
tabdyn . dynamique = vrai ;
tabdyn . temps_calcules = prog 0. pas (pdt*10) (np1*pdt) ;
tabdyn . temps_sauves = prog 0. pas (nins*pdt) (np1*pdt) ;
pasapas tabdyn ;
t_inter = np1*pdt ;
tabdyn . temps_calcules =
prog t_inter pas (pdt*10) (t_inter +(np2*pdt));
tabdyn . temps_sauves =
prog t_inter pas (nins*pdt) (t_inter +(np2*pdt)) ;
pasapas tabdyn ;
o_fn = prog ; o_ft = prog ; o_pu = prog ; o_vx = prog ; o_mz = prog ;
o_rz = prog ; a_t = prog ;
repeter b_p ((dime tabdyn . temps) - 1) ;
tuu1 = 'EXTR' ('REDU' tabdyn . variables_internes . &b_p mocepl1)
'SLIA' 1 1 1 ;
a_t = a_t et (prog tabdyn.temps.&b_p) ;
o_fn = o_fn et tuu1.'FORCE_DE_CHOC_NORMALE' ;
o_ft = o_ft et tuu1.'FORCE_DE_CHOC_TANGENTIELLE' ;
o_pu = o_pu et tuu1.'PUISSANCE_USURE_INSTANTANEE' ;
o_vx = o_vx et tuu1.'VX_POINT_CONTACT' ;
o_mz = o_mz et tuu1.'MZ_POINT_FIBRE_NEUTRE' ;
o_rz = o_rz et tuu1.'RZ_POINT_FIBRE_NEUTRE' ;
fin b_p ;
ev_fn = evol vert manu a_t o_fn ;
ev_ft = evol vert manu a_t o_ft ;
ev_pu = evol vert manu a_t o_pu ;
ev_vx = evol vert manu a_t o_vx ;
ev_mz = evol vert manu a_t o_mz ;
ev_rz = evol vert manu a_t o_rz ;
sinon ;
tabdyn . sortie = table ;
tabdyn . sortie . vitesses = faux ;
tabdyn . sortie . deplacements = faux ;
tabdyn . sortie . mocepl1 = vrai ;
tabdyn . nombre_pas = np1 ;
tabdyn . pas_de_temps = pdt ;
tabdyn . pas_de_sortie = nins ;
dyne de_vogelaere tabdyn ;
ll1 = prog tabdyn . temps . 0 ;
repeter bso (dime tabdyn . temps - 1) ;
ll1 = ll1 et (prog tabdyn . temps . &bso) ;
fin bso ;
tabd = tabdyn . liaisons ;
EV_FN1 =
EVOL MANU LL1 tabd.mocepl1.'FORCE_DE_CHOC_NORMALE' ;
EV_FT1 = EVOL MANU ll1
tabd.mocepl1.'FORCE_DE_CHOC_TANGENTIELLE' ;
EV_PU1 = EVOL MANU ll1
tabd.mocepl1.'PUISSANCE_USURE_INSTANTANEE' ;
EV_VX1 = EVOL MANU ll1
tabd.mocepl1.'VX_POINT_CONTACT' ;
EV_MZ1 = EVOL MANU ll1
tabd.mocepl1.'MZ_POINT_FIBRE_NEUTRE' ;
EV_RZ1 = EVOL MANU ll1
tabd.mocepl1.'RZ_POINT_FIBRE_NEUTRE' ;
*
tabdyn . init_dyne = tabdyn . reprise_dyne ;
dyne de_vogelaere tabdyn ;
ll2 = prog tabdyn . temps . 0 ;
repeter bso (dime tabdyn . temps - 1) ;
ll2 = ll2 et (prog tabdyn . temps . &bso) ;
fin bso ;
EV_FN = EVOL MANU LL2 tabd.mocepl1.'FORCE_DE_CHOC_NORMALE' ;
EV_FT = EVOL MANU ll2
tabd.mocepl1.'FORCE_DE_CHOC_TANGENTIELLE' ;
EV_PU = EVOL MANU ll2
tabd.mocepl1.'PUISSANCE_USURE_INSTANTANEE' ;
EV_VX = EVOL MANU ll2
tabd.mocepl1.'VX_POINT_CONTACT' ;
EV_MZ = EVOL MANU ll2
tabd.mocepl1.'MZ_POINT_FIBRE_NEUTRE' ;
EV_RZ = EVOL MANU ll2
tabd.mocepl1.'RZ_POINT_FIBRE_NEUTRE' ;
finsi ;
TRESU1 = DYNE 'DIFFERENCES_CENTREES' TBAS TCHARG TSORT
*TRESU1 = DYNE 'DE_VOGELAERE' 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' ;
*
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 ;
*
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 ;
*
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 ;
*
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 ;
*
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 ;
*
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' ) ;
TITRE '***** - TL1- FORCE DE CHOC NORMALE *****' ;
DESS (EVO_FN et ev_fn) 'MIMA' ;
TITRE
'***** - TL1- FORCE DE CHOC TANGENTIELLE *****' ;
DESS (EVO_FT et ev_ft) 'MIMA' ;
TITRE '***** - TL1- PUISSANCE USURE *****' ;
DESS (EVO_PU et ev_pu) 'MIMA' ;
TITRE '***** - TL1- VX POINT DE CONTACT *****' ;
DESS (EVO_VX et ev_vx) 'MIMA' ;
TITRE '***** - TL1- MZ POINT FIBRE NEUTRE *****' ;
DESS (EVO_MZ et ev_mz) 'MIMA' ;
TITRE '***** - TL1- RZ POINT FIBRE NEUTRE *****' ;
DESS (EVO_RZ et ev_rz) 'MIMA' ;
FINSI ;
*
si d_pasa ;
indi2 = 500 ;
sinon ;
indi2 = 501 ;
finsi ;
LIS_RZ = EXTRAIRE EVO_RZ 'ORDO' ;
li_rz = extraire ev_rz ordo ;
LISTEM = EXTRAIRE EVO_RZ 'ABSC' ;
li_tem = extraire ev_rz absc ;
D = EXTRAIRE LIS_RZ 501 ;
dd = extraire li_rz indi2 ;
T = EXTRAIRE LISTEM 501 ;
tt = extraire li_tem indi2 ;
SAUT PAGE ;
MESS 'valeur du temps :' T tt ;
MESS 'valeur de la rotation autour de Z :' D dd ;
SAUT 2 LIGNES ;
*
TEMPS ;
*
* Code de bon fonctionnement
*
DEPREF = 100. * T * T ;
DDPREF = 100. * tt * tt ;
RESI = ABS ( ( D - DEPREF ) / DEPREF ) ;
RESII = ABS ( ( DD - DDPREF ) / DDPREF ) ;
SI (( RESI <EG 1E-2 ) ET ( RESII <EG 1E-2 )) ;
ERRE 0 ;
SINON ;
ERRE 5 ;
FINSI ;
*
FIN ;
© Cast3M 2003 - All rights reserved.
Disclaimer