Download drx_flexion_elas.dgibi
* fichier : drx_flexion_elas.dgibi
*
* Cas test de la procédure EXPLICIT
*
* Calcul de la réponse dynamique d'une plaque axisymétrqiue
* à une force de type impact sur son centre
*
* La réponse est comparée à un calcul modale avec DYNE
*
* options de calcul:
* linéaire,
* petits déplacements,
* axisymétrie,
* éléments QUA4,TRI3 et COQ2,
* conditions aux limites de déplacements nuls en 1 point.
*
*
* maillage d'une plaque cylindrique
* en beton avec ferraillage
*
* Diametre 20 m Epaisseur 1m
* fer tous les metres
*
* axe de symétrie
* \
* \ Force sur r=1m
* \ !!!!
* ----------------------------
* uz | beton |
* |_ ur | + fer |\
* O ---------------------------- \
* blocage suivant z
*
graph = faux;
opti echo 0;
*
* MAILLAGE
*
opti dime 2 mode axis ;
ep1 = 2. ;
ray1 = 20. ;
int1 = 2. ;
* parametre du nombre d'element sur la verticale
n1 = 6 ;
* paramètre du nombre d'élément sur l'horizontale
n2 = 1;
pi1 = 0. 0 ;
ps1 = 0. ep1 ;
opti elem seg2 ;
lv1 = d pi1 n1 ps1 ;
nfer = ( enti ray1 ) / ( enti int1 ) ;
tabmail = table maillage ;
tabmail . 1 = table ;
tabmail . 1 . 'LVERT' = lv1 ;
ln = lect 6 4 3 8 * 2 20 * 1 ;
opti elem qua4 ;
i = 1 ;
repeter bou1 nfer ;
ni = extr ln i ;
tabmail . i . 'SU' = (tabmail . i . 'LVERT') trans
( ni * n2 ) ( int1 0. ) ;
tabmail . i . 'LSUP' = cote 2 (tabmail . i . 'SU') ;
tabmail . i . 'LINF' = cote 4 (tabmail . i . 'SU') ;
i = i + 1;
tabmail . i = table ;
tabmail . i . 'LVERT' = inve (cote 3 (tabmail . (i - 1) . 'SU')) ;
si ( i ega 4 ) ;
n1 = n1 / 2 ;
d4 = int1 / ni / n2 ;
pi4 = (2 * int1 + d4) 0. ;
ps4 = (2 * int1 + d4) ep1 ;
li4 = d pi4 n1 ps4 ;
su4a = coutu (tabmail . (i - 1) . 'LVERT') li4 ;
su4b = li4 trans ( ni * n2 - 1) ( (d4 * ( ni * n2 - 1)) 0.) ;
tabmail . (i - 1) . 'SU' = su4a et su4b ;
tabmail . (i - 1) . 'LSUP' = (cote 2 su4a) et (cote 2 su4b) ;
tabmail . (i - 1) . 'LINF' = (cote 4 su4a) et (cote 4 su4b) ;
tabmail . i . 'LVERT' = inve (cote 3 su4b ) ;
finsi ;
si ( i ega 2 ) ;
total1 = (tabmail . (i - 1 ) . 'SU') ;
totsup1 = (tabmail . (i - 1 ) . LSUP ) ;
totinf1 = (tabmail . (i - 1 ) . LINF ) ;
totvert1 = (tabmail . i . LVERT ) ;
sinon ;
total2 = total1 et (tabmail . (i - 1) . 'SU') ;
* detr total1 ;
total1 = total2 ;
totsup2 = totsup1 et (tabmail . (i - 1) . 'LSUP') ;
* detr totsup1 ;
totsup1 = totsup2 ;
totinf2 = totinf1 et (tabmail . (i - 1) . 'LINF') ;
* detr totinf1 ;
totinf1 = totinf2 ;
totvert2 = totvert1 et (tabmail . i . LVERT ) ;
* detr totvert1 ;
totvert1 = totvert2 ;
finsi ;
fin bou1 ;
mailpres = ( elem ( tabmail . 1 . lsup ) 1 )
et ( elem ( tabmail . 1 . lsup ) 2 )
et ( elem ( tabmail . 1 . lsup ) 3 ) ;
totvert1 = coul totvert1 vert ;
totsup1 = coul totsup1 bleu ;
totinf1 = coul totinf1 bleu ;
total1 = coul total1 jaune ;
totfer = totvert1 et totsup1 et totinf1 ;
*trac totfer titr 'Ferraillage' ecla ;
*trac ( total1 et totfer ) titr 'Ferraillage et Beton' ecla ;
opti echo 0 ;
nelm = (nbelem total1) ;
nnom = (nbno total1) ;
nelc = ( nbelem totfer ) ;
nnoc = (nbno totfer) ;
nnddl = nnom * 2 + nnoc ;
sauter 1 ligne ;
mess 'Nbre d element massifs' nelm 'soit' nnom;
mess 'Nbre d element coque ' nelc 'soit' nnoc ;
mess 'Total' ( nelm + nelc ) 'Elements' nnddl 'ddl' ;
sauter 1 ligne ;
opti echo 1 ;
* determnation des distances minimales L
* pour le calcul du pas de temps
*
* MODELE ET MATERIAU
*
mobeto = mode total1 mecanique elastique ;
mabeto = mate mobeto YOUN 40.d9 NU 0.2 RHO 2.4d3;
mofer = mode totfer mecanique elastique coq2 ;
mafer = mate mofer RHO 7.8d3 YOUN 210.d9 NU 0.3 ;
carfer = cara mofer EPAI 12.d-3 ;
*
* CONDITONS AUX LIMITES
*
pext1 = total1 poin proc ( ray1 0. ) ;
cl1 = bloq UZ pext1 ;
*
* CHARGEMENT SPATIAL
*
fpres = (PRESS COQU ( redu mofer mailpres) 1. NORM) / -3.14158 ;
fpres = 'EXCO' fpres ( 'MOTS' 'FR' 'FZ' ) ;
vpres = vect fpres FR FZ rouge 2.;
titr 'Distribution spatiale du chargement (forces nodales equi.)' ;
*trac vpres total1 ;
*
* ANALYSE MODALE
*
rig1 = rigi ( mobeto et mofer ) (mabeto et mafer et carfer ) ;
mas1 = masse ( mobeto et mofer ) (mabeto et mafer et carfer ) ;
temps zero ;
tbas1 = vibr 'INTERVALLE' 0. 300. basse 70 ( rig1 et cl1 ) mas1 tbas;
lfreq = prog ;
i = 1 ;
repeter bou1 ( (dime tbas1 . modes ) - 2);
tabi = tbas1 . modes . i ;
lfreq = lfreq et ( prog tabi .frequence ) ;
* titr 'Frequence ' tabi .frequence ;
* trac ( defo total1 tabi . deformee_modale ) ;
i = i + 1 ;
fin bou1 ;
*
* evolution temporelle force d'impact
*
evolp = evol manu
((prog 0. 10. 20. 30. 40. 50. 60. 70. 1000.)*1.d-3)
((prog 0. 55. 55. 110. 110. 55. 55. 0. 0.)*1.d6 / 3.) ;
*
* réponse élastique de la structrue avec dyne
*
tabchar = table chargement ;
cha1 = char MECA evolp fpres ;
chaba1 = PJBA cha1 tbas1 ;
tabchar . BASE_A = chaba1 ;
sol1 = 'PSMO' (rig1 et cl1 ) (tbas1 . 'MODES') fpres ;
tbas1 . 'PSEUDO_MODES' = sol1 ;
fr1 = extr lfreq (dime lfreq ) ;
w1 = 2 * pi * fr1 ;
dt = 2 ** .5 * 2 / w1 / 10 ;
npas = 'ENTI' ( 21.d-3 / dt) ; nins = 1 ;
'MESS' 'Nombre de pas : ' npas ;
tbas1 = reac cl1 tbas1 ;
tabres = dyne de_vogelaere tbas1 tabchar npas dt nins ;
tdyn = temps noec ;
evx = 'EVOL' 'RECO' tabres tbas1 cha1 'REAC' pext1 FZ ;
evy = 'EVOL' 'RECO' tabres tbas1 cha1 DEPL pi1 UZ ;
*
* calcul à l'aide de la procédure explicite
*
* pas de temps minimum
celbet = ( 37.d9 / 2.4d3 ) ** 0.5 ;
celfer = ( 210.d9 / 7.8d3 ) ** 0.5 ;
lmin = int1 / 6. / n1 ;
dtmin = lmin / ( maxi ( prog celfer celbet ) ) ;
tab_in = TABLE ;
tab_in .'CHARGEMENT' = cha1 ;
tab_in .'LIAISONS' = cl1 ;
tab_in .'MODELE' = mobeto et mofer;
tab_in .'CARACTERISTIQUES' = mafer et mabeto et carfer ;
tab_in .'PAS_TEMPS' = dtmin ;
tab_in .'NPASMAX' = enti ( 20.87d-3 / dtmin ) ;
tab_in .'TEMPS_SORTIE' = prog 0. PAS 2.5d-4 20.87d-3 ;
temps zero ;
DREXUS tab_in ;
texpli = temps noec ;
*
* FORCE DE REACTION DU CADRE
*
i = 1 ;
lt = prog 0.;
lz = prog 0. ;
lzpi1 = prog 0. ;
repeter bou1 ( (dime tab_in . deplacements ) - 1) ;
lt = lt et ( prog tab_in . temps . i ) ;
fex1 = tab_in . forces_exterieures . i;
dep1 = tab_in . deplacements . i;
fz = extr fex1 pext1 'FZ' ;
lz = lz et ( prog fz ) ;
lzpi1 = lzpi1 et ( prog ( extr dep1 pi1 UZ ) );
i = i + 1 ;
fin bou1 ;
evfz = evol bleu manu 'Temps' lt 'Fz' lz ;
evx = coul evx turq ;
tabgraf = table ;
tabgraf . 1 = 'MARQ CROI ' ;
tabgraf . 2 = 'MARQ PLUS ' ;
tabgraf.'TITRE' = table ;
tabgraf.'TITRE' . 1 = mot 'explicit' ;
tabgraf.'TITRE' . 2 = mot 'base_modale' ;
si graph;
dess ( evfz et evx ) tabgraf lege xbor 0. 0.024 ;
finsi;
*
* DEPLACEMENT VERTICAL AU DROIT DE LA FORCE
*
evuz = evol bleu manu 'TEMPS' lt 'UZ' lzpi1 ;
evy = coul evy turq ;
tabgraf . 2 = 'MARQ PLUS ' ;
tabgraf.'TITRE' . 2 = mot 'base_modale' ;
si graph;
dess ( evuz et evy ) tabgraf lege xbor 0. 0.024 ;
finsi;
*
* TEST DE BON FONCTIONNEMENT
*
lz2 = ipol lt ( extr evx 'ABSC' ) (extr evx 'ORDO' ) ;
err1 = (maxi abs ( lz2 - lz )) / ( maxi abs lz2 );
lerr1 = err1 >eg 0.15 ;
luz2 = ipol lt ( extr evy 'ABSC' ) (extr evy 'ORDO' ) ;
err2 = (maxi abs ( lzpi1 - luz2 )) / ( maxi abs luz2 ) ;
lerr2 = err2 >eg 0.05 ;
mess 'Erreur sur la force ' (err1 * 100. ) '%' ;
mess 'Erreur sur le deplacement ' (err2 * 100. ) '%' ;
si (tdyn
© Cast3M 2003 - All rights reserved.
Disclaimer