* fichier : dy_devo4.dgibi
* Test Dy_devo4.dgibi: Jeux de donnees *
* ------------------------------------ *
* *
* si GRAPH = N, les graphiques ne sont pas affiches
* si GRAPH different de N, tous les graphiques
* sont affiches
*
GRAPH = 'N' ; d_dyne = faux ;
* test comparaison pasapas et dyn
*
SAUT PAGE ;
*
*-----------------------------------------------------*
* DY_DEVO4 *
*-----------------------------------------------------*
* *
* Tests de l'op{rateur DYNE option DE_VOGELAERE *
* _____________________________________________ *
* *
* *
* 1 poutre encastree, 10 elements finis, *
* masse negligeable *
* 1 masse concentree e son extremite *
* Test PROFIL_PROFIL_EXTERIEUR avec des carres *
* Comparaison avec la liaison POINT_PLAN *
* NB_M: nombre de segments sur le cote du carre mobile*
* NB_F: nombre de segments sur le cote du carre fixe *
* *
*-----------------------------------------------------*
OPTION ECHO 1 ;
TEMPS ;
*
NB_M = 3 ;
NB_F = 1 ;
R_PPL = 1.E+05 ;
R_PP = R_PPL ;
EXPO = 0.5 ;
*
OPTION ELEM SEG2 DIME 3 ;
*
* Definition geometrie
*
P1 = 0. 0. 0. ;
P2 = 0. 0. 0.9 ;
LIG1 = P1 D 10 P2 ;
*
* Definition materiau
*
MODL1 = MODL LIG1 MECANIQUE ELASTIQUE POUT;
MA1 = MATR MODL1 YOUNG 2.1E11 NU 0.3 RHO 78. ;
CA1 = CARB MODL1 SECT 1.1E-6 INRY 8.33E-10
INRZ 8.33E-10 TORS 5.0E-7 VECT (1. 0. 1. );
*
RIG1 = RIGI MODL1 (MA1 ET CA1) ;
MAST = (MASSE MODL1 (MA1 ET CA1)) ET
( MASSE DEPL 2.0 P2 ) ;
*
* Conditions aux limites
*
ENC1 = BLOQUE DEPL ROTA P1 ;
ENC2 = BLOQUE 'UY' LIG1 ;
RIGT = RIG1 ET ENC1 ET ENC2 ;
*
* Calcul des modes
*
MOD1=VIBRATION PROCHE ( PROG 1.0 ) RIGT MAST ;
*
* Base modale
*
TB1 = TRADUIRE MOD1 ;
TBAS = TABLE 'BASE_MODALE' ;
TBAS.'MODES' = TB1 ;
ma1 = manu poi1 tb1 . 1 . point_repere ;
mo1 = mode ma1 mecanique elastique modal ;
ca1 = mate mo1 freq tb1 . 1 . frequence
mass tb1 . 1 . masse_generalisee defo tb1 . 1 . deformee_modale
amor 0. ;
*
RIGI1 = RIGI TB1 ;
*
* Amortissement
*
AMOR1 = AMOR TBAS ( PROG 0.0 ) ;
amor2 = amor mo1 ca1 ;
*
TA = TABLE 'AMORTISSEMENT' ;
TA.'AMORTISSEMENT' = AMOR1 ;
*
* Deplacement initial
*
FE2 = FORCE FX 1. P2 ;
XE2 = RESOU RIGT FE2 ;
XMAX = MAXI XE2 AVEC (MOTS UX ) ;
FE1 = FE2 * (0.139E-2 / XMAX );
FGE1 = PJBA TBAS FE1 ;
ALO = RESO RIGI1 FGE1 ;
*
TINIT = TABLE 'INITIAL' ;
TINIT.'DEPLACEMENT' = ALO ;
*
*--- Definition des liaisons
*
TLIA = TABLE 'LIAISON' ;
TLB = TABLE 'LIAISON_B' ;
TLIA.'LIAISON_B' = TLB ;
NORM1 = 0 0 1 ;
*
* Liaison PROFIL_PROFIL_EXTERIEUR
*
* profil mobile
P1_1 = -0.5 0.0 0.9 ;
P1_2 = 0.0 -0.5 0.9 ;
P1_3 = 0.5 0.0 0.9 ;
P1_4 = 0.0 0.5 0.9 ;
MAIL_1 = P1_1 D NB_M P1_2 D NB_M P1_3 D NB_M P1_4 D
NB_M P1_1 ;
*
* profil fixe
P2_1 = 0.501 1.0 0.9 ;
P2_2 = 0.501 -1.0 0.9 ;
P2_3 = 0.601 -1.0 0.9 ;
P2_4 = 0.601 1.0 0.9 ;
MAIL_2 = P2_1 D NB_F P2_2 D NB_F P2_3 D NB_F P2_4 D
NB_F P2_1 ;
*
SI ( NEG GRAPH 'N' ) ;
TRAC ( 0 0 1000 ) ( MAIL_1 ET MAIL_2 ) ;
FINSI ;
*
TL1 = TABLE 'LIAISON_ELEMENTAIRE' ;
TL1.'TYPE_LIAISON' = MOT 'PROFIL_PROFIL_EXTERIEUR';
TL1.'SUPPORT' = P2 ;
TL1.'PROFIL_FIXE' = MAIL_2 ;
TL1.'PROFIL_MOBILE' = MAIL_1 ;
TL1.'NORMALE' = NORM1 ;
TL1.'RAIDEUR' = R_PP ;
TL1.'EXPOSANT_RAIDEUR' = EXPO ;
*
TLB . 1 = TL1 ;
mappe1 = manu poi1 p2 ;
moppe1 = modele mappe1 liaison PROFIL_PROFIL EXTERIEUR ;
tuppe1 = table ; tuppe1 . moppe1 = vrai ;
cappe1 = mate moppe1 'NORM' norm1 'RAID' r_pp 'ERAI' expo
'PFIX' mail_2 'PMOB' mail_1 'SORT' tuppe1 ;
*
*--- Definition des resultats en sortie
*
TSORT = TABLE 'SORTIE' ;
TSOR1 = TABLE 'SORTIE' ;
TSORT . 'VARIABLE' = TSOR1 ;
TSOR1 . 'DEPLACEMENT' = VRAI ;
TSOR1 . 'VITESSE' = VRAI ;
*
TSOR2 = TABLE 'SORTIE' ;
TSORT.'LIAISON_B' = TSOR2 ;
TSOR2.TL1 = VRAI ;
*
* Temps
*
PDT = 0.1E-3 ;
NP1 = 5000 ;
NINS = 5 ;
*
ev1 = evol manu (prog 0. 1000.) (prog 1. 1.) ;
cha1 = char force ev1 FGE1 ;
*
SI d_dyne ;
tabdyn = table 'PASAPAS' ;
tabdyn . modele = mo1 et moppe1 ;
tabdyn . caracteristiques = ca1 et cappe1 ;
tabdyn . sortie = table ;
tabdyn . sortie . moppe1 = vrai ;
tabdyn . sortie . vitesses = faux ;
tabdyn . pas_de_temps = pdt ;
tabdyn . nombre_pas = np1 ;
tabdyn . pas_de_sortie = nins ;
tabdyn . temps = table ;
tabdyn . temps . 0 = 0. ;
tabdyn . deplacements = table ;
tabdyn . deplacements . 0 = ALO ;
dyne de_vogelaere tabdyn ;
SINON ;
* pour pasapas
* etape precontrainte
t_prec = table ;
t_prec . modele = mo1 ;
t_prec . caracteristiques = ca1 ;
t_prec . chargement = cha1 ;
t_prec . temps_calcules = prog 0. 1000. ;
t_prec . mes_sauvegardes = table ;
t_prec . mes_sauvegardes . defto = vrai ;
pasapas t_prec ;
*lacher
tabdyn = table 'PASAPAS' ;
tabdyn . modele = mo1 et moppe1 ;
tabdyn . caracteristiques = ca1 et cappe1 ;
*tabdyn . modele = mo1 ;
*tabdyn . caracteristiques = ca1 ;
tabdyn . temps = table ;
tabdyn . temps . 0 = 0. ;
tabdyn . deplacements = table ;
tabdyn . deplacements . 0 = t_prec . deplacements . 1 ;
tabdyn . contraintes = table ;
tabdyn . contraintes . 0 = t_prec . contraintes . 1 ;
tabdyn . deformations = table;
tabdyn . deformations . 0 = t_prec . deformations . 1;
tabdyn . dynamique = vrai ;
tabdyn . temps_calcules = prog 0 pas (4*nins*pdt) (np1*pdt);
pasapas tabdyn ;
FINSI ;
*------ Op{rateur DYNE ------
*
TRESU1 = DYNE 'DE_VOGELAERE' TBAS TA TINIT TSORT TLIA
NP1 PDT NINS ;
nsu1 = dime tresu1 . temps_de_sortie ;
ovi1 = prog ;
repeter bsu1 nsu1 ;
ovi1 = ovi1 et
(prog (extr tresu1 . &bsu1 . vitesse alfa tb1 . 1 . point_repere)) ;
fin bsu1 ;
evvi1 = evol manu 'temps' TRESU1 . 'TEMPS_DE_SORTIE'
'vitesse' ovi1 ;
*
* Trac{ des courbes
*
SI ( NEG GRAPH 'N' ) ;
si d_dyne ;
l_t2 = prog ;
repeter bs (dime tabdyn . temps) ;
si (ega &bs 1) ; iterer bs ; finsi ;
l_t2 = l_t2 et (prog tabdyn . temps . (&bs - 1)) ;
fin bs ;
evfn1 = evol manu l_t2 tabdyn . force_de_choc ;
evux1 = evol manu l_t2 tabdyn . ux ;
TITRE '***** LIAISON PROFIL_PROFIL_EXTERIEUR *****';
DESS (( EVOL MANU 'TEMPS' TRESU1 . 'TEMPS_DE_SORTIE'
'FN' TRESU1 . TL1 . 'FORCE_DE_CHOC') et (evfn1 coul bleu))
'MIMA' ;
*
DESS (( EVOL MANU 'TEMPS' TRESU1 . 'TEMPS_DE_SORTIE'
'UX' TRESU1 . TL1 . 'UX' ) et (evux1 coul bleu)) 'MIMA';
*
sinon ;
*
l_t20 = prog tabdyn . temps . 1 ;
tt1 = 'EXTR' tabdyn . variables_internes . 1 'SLIA' 2 1 1 ;
lutt1 = dime tt1 . force_de_choc ;
l_fdc20 = extr tt1 . force_de_choc lutt1;
l_ux20 = extr tt1 . ux lutt1 ;
l_vi20 = prog
(extr tabdyn . vitesses . 1 alfa tb1 . 1 . point_repere);
indi1 = 1 ;
repeter bs ((dime tabdyn . temps) - 2) ;
indi1 = indi1 + 1 ;
ttu1 = 'EXTR' tabdyn . variables_internes . indi1 'SLIA' 2 1 1 ;
l_ux20 = l_ux20 et ttu1 . ux ;
l_fdc20 = l_fdc20 et ttu1 . force_de_choc ;
l_vi20 = l_vi20 et
(prog (extr tabdyn . vitesses . indi1 alfa tb1 . 1 . point_repere));
l_t20 = l_t20 et (prog tabdyn . temps . indi1) ;
fin bs ;
evfdc20 = evol manu 'temps' l_t20 'force' l_fdc20 ;
evux20 = evol manu 'temps' l_t20 'dep_pl' l_ux20 ;
evit20 = evol manu 'temps' l_t20 'vitesse' l_vi20 ;
evfdcr1 = evol manu 'temps' TRESU1 . 'TEMPS_DE_SORTIE'
'FN' TRESU1 . TL1 . 'FORCE_DE_CHOC' ;
evuxr1 = EVOL MANU 'TEMPS' TRESU1 . 'TEMPS_DE_SORTIE'
'UX' TRESU1 . TL1 . 'UX' ;
titre ' vitesse ' ;
DESS (evvi1 et (evit20 coul bleu)) 'MIMA' ;
titre 'force de choc' ;
DESS (( EVOL MANU 'TEMPS' TRESU1 . 'TEMPS_DE_SORTIE'
'FN' TRESU1 . TL1 . 'FORCE_DE_CHOC') et (evfdc20 coul bleu))
'MIMA' ;
titre ' ux liaison ' ;
DESS (( EVOL MANU 'TEMPS' TRESU1 . 'TEMPS_DE_SORTIE'
'UX' TRESU1 . TL1 . 'UX' ) et (evux20 coul bleu)) 'MIMA';
*
finsi ;
FINSI ;
* mess (extr tresu1 . temps_de_sortie 801) tabdyn . temps . 200 ;
D_FC_1 = EXTRAIRE ( TRESU1 . TL1 . 'FORCE_DE_CHOC' )
801 ;
D_DE_1 = EXTRAIRE ( TRESU1 . TL1 . 'UX' ) 801 ;
tt200 = 'EXTR' tabdyn . variables_internes . 200 'SLIA' 2 1 1 ;
D_FC_2 =EXTRAIRE (tt200 . 'FORCE_DE_CHOC') 1;
D_DE_2 =EXTRAIRE (tt200 . 'UX') 1;
*
SAUT PAGE ;
MESS '-----> liaison PROFIL_PROFIL_EXTERIEUR' ;
MESS ' valeur de la force de choc :' D_FC_1 D_FC_2;
MESS ' valeur du deplacement :' D_DE_1 D_DE_2;
*
R_FC = ABS ( ( D_FC_1 - D_FC_2 ) / D_FC_2 ) ;
R_DE = ABS ( ( D_DE_1 - D_DE_2 ) / D_DE_2 ) ;
R_DE0 = ABS((D_DE_1 - 1.29833E-03) / 1.29833E-03) ;
SI ( ( R_FC <EG (1.4497 * 1.2) ) ET ( R_DE <EG (0.15738 *1.2) )
ET (R_DE0 < 1.e-2) ) ;
ERRE 0 ;
SINON ;
ERRE 5 ;
FINSI ;
* Liaison POINT_PLAN
*
NORM1 = 1 0 0 ;
TL1 = TABLE 'LIAISON_ELEMENTAIRE' ;
TL1.'TYPE_LIAISON' = MOT 'POINT_PLAN' ;
TL1.'SUPPORT' = P2 ;
TL1.'NORMALE' = NORM1 ;
TL1.'RAIDEUR' = R_PPL ;
TL1.'JEU' = 0.001 ;
*
TLB . 1 = TL1 ;
TSOR2.TL1 = VRAI ;
mapp2 = manu poi1 p2 ;
mopp2 = modele mapp2 liaison POINT_PLAN ;
tuppe2 = table ; tuppe2 . mopp2 = vrai ;
capp2 = mate mopp2 'NORM' norm1 'RAID' r_ppl 'JEU' 0.001 'SORT' tuppe2;
*
tabdyn2 = table 'PASAPAS' ;
tabdyn2 . modele = mo1 et mopp2 ;
tabdyn2 . caracteristiques = ca1 et capp2 ;
tabdyn2 . temps = table ;
tabdyn2 . temps . 0 = 0. ;
SI d_dyne ;
tabdyn2 . deplacements = table ;
tabdyn2 . deplacements . 0 = ALO ;
tabdyn2 . sortie = table ;
tabdyn2 . sortie . mopp2 = vrai ;
tabdyn2 . sortie . vitesses = faux ;
tabdyn2 . pas_de_temps = pdt ;
tabdyn2 . nombre_pas = np1 ;
tabdyn2 . pas_de_sortie = nins ;
dyne de_vogelaere tabdyn2 ;
SINON ;
tabdyn2 . deplacements = table ;
tabdyn2 . deplacements . 0 = t_prec . deplacements . 1 ;
tabdyn2 . contraintes = table ;
tabdyn2 . contraintes . 0 = t_prec . contraintes . 1 ;
tabdyn2 . deformations = table;
tabdyn2 . deformations . 0 = t_prec . deformations . 1;
tabdyn2 . dynamique = vrai ;
tabdyn2 . temps_calcules = prog 0 pas (4*nins*pdt) (np1*pdt);
*tabdyn2 . temps_calcules = prog 0 pas (pdt) .0005;
*tabdyn2 . temps_sauves = prog 0 pas (nins*pdt) (np1*pdt) ;
*tabdyn2 . temps_sauves = prog 0 pas (nins*pdt) .01 ;
pasapas tabdyn2 ;
FINSI ;
*np1 = 5 ; nins = 1;
TRESU2 = DYNE 'DE_VOGELAERE' TBAS TA TINIT TSORT TLIA
NP1 PDT NINS ;
nsu2 = dime tresu2 . temps_de_sortie ;
ovi2 = prog ;
repeter bsu2 nsu2 ;
ovi2 = ovi2 et
(prog (extr tresu2 . &bsu2 . vitesse alfa tb1 . 1 . point_repere)) ;
fin bsu2 ;
evvi2 = evol manu 'temps' TRESU2 . 'TEMPS_DE_SORTIE'
'vitesse' ovi2 ;
*
* Trace des courbes
*
SI ( NEG GRAPH 'N' ) ;
si d_dyne ;
l_t22 = prog ;
repeter bs (dime tabdyn2 . temps) ;
si (&bs ega 1) ; iterer bs ; finsi ;
l_t22 = l_t22 et (prog tabdyn2 . temps . (&bs - 1)) ;
fin bs ;
evfn2 = evol manu l_t22 tabdyn2 . force_de_choc;
evux2 = evol manu l_t22 tabdyn2 . ux ;
TITRE '***** LIAISON POINT_PLAN *****' ;
DESS (( EVOL MANU 'TEMPS' TRESU2 . 'TEMPS_DE_SORTIE'
'FN' TRESU2 . TL1 . 'FORCE_DE_CHOC') et (evfn2 coul
vert)) 'MIMA' ;
*
DESS (( EVOL MANU 'TEMPS' TRESU2 . 'TEMPS_DE_SORTIE'
'UX' TRESU2 . TL1 . 'UX' ) et (evux2 coul vert)) 'MIMA' ;
sinon ;
*
l_t202 = prog tabdyn2 . temps . 1 ;
tt2 = 'EXTR' tabdyn2 . variables_internes . 1 'SLIA' 2 1 1 ;
lutt2 = dime tt2 . force_de_choc ;
l_fdc202 = extr tt2 . force_de_choc lutt2;
l_ux202 = extr tt2 . ux lutt2 ;
l_vi202 = prog
(extr tabdyn2 . vitesses . 1 alfa tb1 . 1 . point_repere);
indi1 = 1 ;
repeter bs ((dime tabdyn2 . temps) - 2) ;
indi1 = indi1 + 1 ;
ttu2 = 'EXTR' tabdyn2 . variables_internes . indi1 'SLIA' 2 1 1 ;
l_ux202 = l_ux202 et ttu2 . ux ;
l_fdc202 = l_fdc202 et ttu2 . force_de_choc ;
l_vi202 = l_vi202 et
(prog (extr tabdyn2 . vitesses .indi1 alfa tb1 . 1 . point_repere)) ;
l_t202 = l_t202 et (prog tabdyn2 . temps . indi1) ;
fin bs ;
evfdc202 = evol manu 'temps' l_t202 'force' l_fdc202 ;
evux202 = evol manu 'temps' l_t202 'dep_pl' l_ux202 ;
evit202 = evol manu 'temps' l_t202 'vitesse' l_vi202 ;
evfdcr2 = evol manu 'temps' TRESU2 . 'TEMPS_DE_SORTIE'
'FN' TRESU2 . TL1 . 'FORCE_DE_CHOC' ;
evuxr2 = EVOL MANU 'TEMPS' TRESU2 . 'TEMPS_DE_SORTIE'
'UX' TRESU2 . TL1 . 'UX' ;
titre ' vitesse ' ;
DESS (evvi2 et (evit202 coul bleu)) 'MIMA' ;
titre 'force de choc' ;
DESS (( EVOL MANU 'TEMPS' TRESU2 . 'TEMPS_DE_SORTIE'
'FN' TRESU2 . TL1 . 'FORCE_DE_CHOC') et (evfdc202 coul bleu))
'MIMA' ;
titre ' ux liaison ' ;
DESS (( EVOL MANU 'TEMPS' TRESU2 . 'TEMPS_DE_SORTIE'
'UX' TRESU2 . TL1 . 'UX' ) et (evux202 coul bleu)) 'MIMA';
*
finsi ;
FINSI ;
*
TEMPS ;
*
* Code de bon fonctionnement
*
D_FC_20 =EXTRAIRE ( TRESU2 . TL1 . 'FORCE_DE_CHOC' ) 801;
D_DE_20 =EXTRAIRE ( TRESU2 . TL1 . 'UX' ) 801 ;
tt2200 = 'EXTR' tabdyn2 . variables_internes . 200 'SLIA' 2 1 1 ;
D_FC_21 =EXTRAIRE (tt2200 . 'FORCE_DE_CHOC') 1;
D_DE_21 =EXTRAIRE (tt2200 . 'UX') 1;
SAUT 2 LIGNES ;
MESS '-----> liaison POINT_PLAN ' ;
MESS ' valeur de la force de choc :' D_FC_20 D_FC_21 ;
MESS ' valeur du deplacement :' D_DE_20 D_DE_21 ;
SAUT 3 LIGNES ;
R_FC = ABS ( ( D_FC_20 - D_FC_21 ) / D_FC_20 ) ;
R_DE = ABS ( ( D_DE_20 - D_DE_21 ) / D_DE_20 ) ;
R_DE0 = ABS ((D_DE_20 - 1.29833E-03) / 1.29833E-03) ;
SI ( ( R_FC <EG (0.59178 *1.2)) ET ( R_DE <EG (0.13598 * 1.2))
ET (R_DE0 < 1.e-2) ) ;
ERRE 0 ;
SINON ;
ERRE 5 ;
FINSI ;
*
FIN ;
© Cast3M 2003 - All rights reserved.
Disclaimer