Download dyna16.dgibi

Back to the list

* 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