* fichier : dyna16.dgibi ************************************************************************ * Section : Mecanique Dynamique ************************************************************************ *************************************** * * Portique soumis à un déplacement différentiel des appuis * * Calcul sur un mode dynamique et les modes statiques * * D. Combescure aout 2006 * *************************************** ************************************************************************ * OPTIONS ************************************************************************ *GRAPH = VRAI; GRAPH = FAUX; *COMPLET = VRAI; COMPLET = FAUX; * opti dime 2 elem seg2 mode plan cont; ************************************************************************ * MAILLAGE ************************************************************************ 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); ************************************************************************ * MODELES, MATERIAU ET MATRICES ************************************************************************ mod1 = MODE lig1 mecanique elastique TIMO; mat1 = MATE 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= vib1 . 'MODES' ; nmod = (dime (vib1b) ) - 2; repeter lab1 nmod; dep1 = vib1b. &lab1 . DEFORMEE_MODALE; fr1 = vib1b. &lab1 . FREQUENCE; MESS &lab1 ' : ' fr1 'Hz'; * trac (defo lig1 dep1) ; fin lab1; ************************************************************************ * CALCUL TEMPOREL ************************************************************************ * * 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 sur base physique avec DYNAMIC) * *--------------------------------------------------------- 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 => on impose -M*[K**-1*uimpose] au second membre * (calcul direct sur base physique avec DYNAMIC) * *--------------------------------------------------------------- * * 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 * (calcul direct sur base modale avec DYNE) * *------------------------------------------------------------------ vib1 = vibr proche (prog 1.) (lect 1) (KK1 et bl1 et bl2 et bl1u et bl2u) MM1 'SOLU'; 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; *