* fichier : dyna_nl2.dgibi ************************************************************************ ************************************************************************ complet = vrai; * ************************************************* * pour calcul complet mettre complet à : vrai; ************************************************* ************************************************************************* * * dynamique non lineaire geometrique * * reponse forcee d'un oscillateur de type Duffing * * comparaison avec calcul explicite * ************************************************************************* graph = faux ; P1 = 0. 0. ; P2 = 1. 0. ; ST = P1 D 1 P2 ; MACA= MA1 ET CAR1; CL = CL1 ET CL2 ; * precontrainte de 500 N f1 = force fx 500 p2 ; *sig1 = manu 'CHML' mo 'EFFX' 500. 'TYPE' 'CONTRAIN' * 'STRESSES' ; * calcul dynamique si complet; t1 = .4 ; sinon; t1 = .1; finsi; dt = .005 ; f1 = force fy 25000. p2 ; *lix1 = prog 0 8.9 100 ; liy1 = prog 0 1 1 ; tab2 = table ; tab2.grands_deplacements = vrai ; *tab2.tinit = vrai ; *tab2.acceleration = 2 ; tab2.dynamique = vrai ; tab2.masse_constante = mass1 ; TAB2.'BLOCAGES_MECANIQUES' = CL ; TAB2.'MODELE' = MO; Tab2.'K_SIGMA' = VRAI ; TAB2.'CARACTERISTIQUES' = MACA; TAB2.'CHARGEMENT' = CHA1; TAB2.'CONTRAINTES' = TABLE; TAB2.'CONTRAINTES' . 0 = SIG1 ; TAB2.'TEMPS_CALCULES' = LIS11; PASAPAS TAB2 ; REPETER TBOU2 NDIM; LEDEP = TAB2 . DEPLACEMENTS. (&TBOU2 - 1); FIN TBOU2 ; ******************************************************************* ** ** calcul explicite (differences centrées, ** on calcule la force de rappel analytiquement) * m = 250. ; x0 = 0. ; v0 = 0. ; si complet; npas = 400 ; sinon; npas = 100; finsi; dt = .001 ; f1 = 25000 ; n = 0 ; repeter toto npas ; n = n + 1 ; si (n ega 1 ) ; xn = x0 ; finT = (500*xn/((1 + (xn**2))**.5)) + (1e7*xn*(1 - (1/((1+(xn**2))**.5)))) ; xnm = x0-(dt*v0)- (((dt**2)/2.)*((fint-fn)/m)) ; finsi ; finT = (500*xn/((1 + (xn**2))**.5)) + (1e7*xn*(1 - (1/((1+(xn**2))**.5)))) ; xnp = (-1.)*((dt**2)/m*(finT - fn)) + (2*xn) - xnm ; si (n > 1) ; vn = (xnp - xnm)/2./dt ; finsi ; xnm = xn ; xn = xnp ; fin toto ; ************************************************************************* * * comparaison entre les deux calculs * si graph ; finsi ; si (err1 > 7); sinon ; finsi ; fin;
© Cast3M 2003 - Tous droits réservés.
Mentions légales