* fichier : dyna16.dgibi
***************************************
*
* Portique soumis à un déplacement différentiel des appuis
*
* Calcul sur un mode dynamique et les modes statiques
*
* D. Combescure aout 2006
*
***************************************
*GRAPH = VRAI;
GRAPH = FAUX;
*COMPLET = VRAI;
COMPLET = FAUX;
*
opti dime 2 elem seg2 mode plan cont;
H = 3.;
L = 4.;
p1 = ((-0.5)*L) 0.;
vv = 0. H;
p1h = p1 plus vv;
p2 = (0.5*L) 0.;
p2h = p2 plus vv;
n1 = 10;
n2 = 20;
a = 0.25;
b = a;
e1 = 30000.D6;
ro1 = 2400.;
nu1 = 0.30;
sec1 = a*b;
in1 = (1./12.)*(b*(a**3));
lig1 = (d n1 p1 p1h) et (d n1 p2 p2h) et (d n2 p1h p2h);
mod1 = modl lig1 mecanique elastique TIMO;
mat1 = matr mod1 YOUN E1 NU nu1 RHO ro1
SECT sec1 INRZ in1;
KK1 = rigi mod1 mat1;
CC1 = 0.001*KK1;
MM1 = mass mod1 mat1;
bl1 = BLOQ UY RZ p1;
bl2 = BLOQ UY RZ p2;
bl1u = BLOQ UX p1;
bl2u = BLOQ UX p2;
bltot = bl1 et bl2 et bl1u et bl2u;
fh1 = DEPI bl1u 1.;
fh2 = DEPI bl2u 1.;
*
* mode propre
*
vib1 = vibr proche (prog 1.) (lect 1) (KK1 et bltot) MM1;
vib1b= traduire vib1;
nmod = (dime (vib1b) ) - 2;
repeter lab1 nmod;
dep1 = vib1b. &lab1 . DEFORMEE_MODALE;
fr1 = vib1b. &lab1 . FREQUENCE;
titre fr1;
* trac (defo lig1 dep1);
fin lab1;
*
* Définition du chargement
*
T1 = 0.02;
SI COMPLET;
tfin = 50.*T1;
SINON;
tfin = 2.*T1;
FINSI;
ltemps = prog 0. T1 (2.*T1) (3.*T1) (4.*T1) 10.;
lpacc1 = prog 0 1. -1. 0. 0. 0.;
lpacc2 = prog 0 0. 1. -1. 0. 0.;
dt = T1/20.;
ltime = prog 0 pas dt 10.;
evacc1 = evol manu ltime (ipol ltime ltemps lpacc1);
evdep1 evvit1 = insi evacc1;
evacc2 = evol manu ltime (ipol ltime ltemps lpacc2);
evdep2 evvit2 = insi evacc2;
prtimeb = prog 0 pas dt tfin;
prdep1 = extr evdep1 ordo;
prdep2 = extr evdep2 ordo;
*
*--------------------------------------------------------
*
* Méthode 1 => on impose le déplacement (calcul direct)
*
*---------------------------------------------------------
cha1 = (char fh1 evdep1) et (char fh2 evdep2);
*
tab1 = table;
tab1.'DEPL' = manu chpo lig1 2 ux 0 uy 0;
tab1.'VITE' = manu chpo lig1 2 ux 0 uy 0;
tab1.'CHAR' = cha1;
tab1.'RIGI' = (KK1 et bltot);
tab1.'AMOR' = CC1;
tab1.'MASS' = MM1;
tab1.'FREQ' = (0.25/dt);
tab1.'INST' = prtimeb;
tab1.'SAUV' = VRAI;
tab2 = dynamic tab1;
nn = dime tab2;
prp1h = prog;
repeter lab1 nn;
si (ega &lab1 1);
deft = defo lig1 (tab2 . &lab1 . DEPL) 100;
sinon;
deft = deft et
(defo lig1 (tab2 . &lab1 . DEPL) 100);
finsi;
prp1h = prp1h et
(prog (extr (tab2 . &lab1 . DEPL) p1h UX));
fin lab1;
Ev1UX1 = evol rouge manu prtimeb prp1h;
SI GRAPH;
dess (evol manu prtimeb prp1h);
trac deft anime;
FINSI;
*---------------------------------------------------------------
*
* Méthode 2 => superposition de solution statique et dynamique
* sur base physique
*
*---------------------------------------------------------------
*
* mode statique (à la main)
*
depsta1 = reso (KK1 et bltot) fh1;
depsta2 = reso (KK1 et bltot) fh2;
*
fh12 = (-1.)*MM1*depsta1;
fh22 = (-1.)*MM1*depsta2;
cha2 = (char fh12 evacc1) et (char fh22 evacc2);
*
tab1 = table;
tab1.'DEPL' = manu chpo lig1 2 ux 0 uy 0;
tab1.'VITE' = manu chpo lig1 2 ux 0 uy 0;
tab1.'CHAR' = cha2;
tab1.'RIGI' = (KK1 et bltot);
tab1.'AMOR' = CC1;
tab1.'MASS' = MM1;
tab1.'FREQ' = (0.25/dt);
tab1.'INST' = prtimeb;
tab1.'SAUV' = VRAI;
tab2 = dynamic tab1;
nn = dime tab2;
prp1h2 = prog;
prp1h2t = prog;
repeter lab2 nn;
depj = (tab2 . &lab2 . DEPL);
depjt = depj +
((extr prdep1 &lab2)*depsta1)
+ ((extr prdep2 &lab2)*depsta2);
si (ega &lab2 1);
def2 = defo lig1 depj 1000;
deft2 = defo lig1 depjt 1000;
sinon;
deft2 = deft2 et
(defo lig1 depjt 1000);
finsi;
prp1h2 = prp1h2 et
(prog (extr depj p1h UX));
prp1h2t = prp1h2t et
(prog (extr depjt p1h UX));
fin lab2;
ta = table;
ta.2 = 'TIRR';
ta.3 = 'TIRL';
ta.4 = 'TIRL';
Ev2UX1 = evol rouge manu prtimeb prp1h2t;
*------------------------------------------------------------------
*
*
* Méthode 3=> superposition de solution statique et dynamique
* sur base modale
*
*------------------------------------------------------------------
vib1 = vibr proche (prog 1.) (lect 1)
(KK1 et bl1 et bl2 et bl1u et bl2u) MM1;
SPLA1=STRU (KK1 et bl1 et bl2 et bl1u et bl2u) MM1 ;
ELM1=CLST SPLA1 BL1u;
ELM2=CLST SPLA1 BL2u;
PR1=PROG 1. ;
LIUX=(RELA ELM1 LX PR1) et (RELA ELM2 LX PR1);
SOL1 = SOLS LIUX SPLA1;
BASE1 = BASE SPLA1 VIB1 LIUX SOL1;
*
MODYN1 = TRADUIRE (EXTR BASE1 MODE);
MOSTA1 = TRADUIRE (EXTR BASE1 STAT);
*
depsta1 = MOSTA1. 1 . DEFORMEE_MODALE;
fh12 = (-1.)*MM1*depsta1;
depsta2 = MOSTA1. 2 . DEFORMEE_MODALE;
fh22 = (-1.)*MM1*depsta2;
cha3 = (char fh12 evacc1) et (char fh22 evacc2);
*
vib1c= traduire vib1;
tbas1 = table 'BASE_MODALE';
tbas1.'MODES' = vib1c;
*
TRIG = TABLE 'RAIDEUR_ET_MASSE';
TRIG.'RAIDEUR' = pjba tbas1 (KK1 et bl1 et bl2 et bl1u et bl2u) ;
TRIG.'MASSE' = pjba tbas1 MM1;
TAMOR = TABLE 'AMORTISSEMENT';
TAMOR . 'AMORTISSEMENT' = PJBA tbas1 CC1;
TCHAR = TABLE 'CHARGEMENT' ;
TCHAR.'BASE_A' = pjba tbas1 cha3;
*
TSORT = TABLE 'SORTIE' ;
TSORV = TABLE 'VARIABLE' ;
TSORT.'VARIABLE' = TSORV ;
TSORV.'VITESSE' = VRAI;
TSORV.'DEPLACEMENT' = VRAI ;
TSORV.'ACCELERATION' = VRAI ;
*
DTEX = (pi/12.6)/100.;
NTT = ENTIER (tfin/DTEX);
*
* Appel à DYNE
*
TRESU = DYNE DE_VOGELAERE TRIG TAMOR TCHAR
NTT DTEX TSORT ;
*
* Post-traitement
*
Ev3UXD1 = EVOL VERT RECO TRESU tbas1 'DEPL' P1h UX ;
EV3UXS1 = EVOL MANU (EXTR Ev3UXD1 ABSC)
(ipol (EXTR Ev3UXD1 ABSC) (extr evdep1 absc)
((extr evdep1 ordo)*(extr depsta1 p1h ux)));
EV3UXS2 = EVOL MANU (EXTR Ev3UXD1 ABSC)
(ipol (EXTR Ev3UXD1 ABSC) (extr evdep2 absc)
((extr evdep2 ordo)*(extr depsta2 p1h ux)));
Ev3UX1 = EVOL MANU (EXTR Ev3UXD1 ABSC)
((EXTR Ev3UXD1 ORDO) + (EXTR Ev3UXS1 ORDO)
+ (EXTR Ev3UXS2 ORDO));
*
SI GRAPH;
TRAC (DEFO LIG1 (MODYN1. 1 . DEFORMEE_MODALE));
TRAC ((DEFO LIG1 depsta1) et
(DEFO LIG1 depsta1 0. ROUG));
TRAC ((DEFO LIG1 depsta2) et
(DEFO LIG1 depsta2 0. ROUG));;
TRAC ((DEFO LIG1 (depsta1 + depsta2)) et
(DEFO LIG1 depsta2 0. ROUG));;
trac lig1 (vecteur fh12 fx fy);
trac lig1 (vecteur fh22 fx fy);
trac lig1 (vecteur (fh12 et fh22) fx fy);
dess (evacc1 et (evacc2 coul rouge)) xbord 0. 0.20;
dess (evdep1 et (evdep2 coul rouge)) xbord 0. 0.20;
DESS (Ev3UXD1 et Ev3UXS1 et Ev3UXS2) xbord 0 0.2;
DESS (Ev1UX1 et Ev2UX1 et Ev3UX1) xbord 0. 1.;
FINSI;
*
TEST = MAXI (PROG
((MAXI (EXTR Ev2UX1 ORDO)) - (MAXI (EXTR Ev1UX1 ORDO)))
((MAXI (EXTR Ev3UX1 ORDO)) - (MAXI (EXTR Ev1UX1 ORDO)))) ABS;
SI (TEST > 1.D-5);
ERR 4;
LIST TEST;
FINSI;
*
FIN;
*
© Cast3M 2003 - All rights reserved.
Disclaimer