* @A1DDL PROCEDUR BR232186 14/06/03 21:15:01 8061 ********************************************** * PROCEDURE @A1DDL.PROCEDUR ********************************************** * Entree : TABDYN (type TABLE) * TABLE DE PARAMETRES ********************************************** * Sortie : EVDR (type EVOLUTION) * EVOLUTION TEMP. DES DEPLACEMENTS * * EVVR (type EVOLUTION) * EVOLUTION TEMP. DES VITESSES * * EVAR (type EVOLUTION) * EVOLUTION TEMP. DES ACCELERATIONS * * TAB3 (type TABLE) * TABLE DE VARIABLES INTERNES * A CONVERGENCE ********************************************** * Commentaire : Integration temporelle * des equations d un oscillateur * a 1DDL non lineaire * avec actualisation de * l amortissement ********************************************** * Developpeur : COMPUTATIONAL ENGINEERING * AND STRUCTURES SAS * contact@c-e-s.fr ********************************************** * Recuperation des variables M = TABDYN . 1; BETA = TABDYN . 2; GAMMA = TABDYN . 3; FPLAS = TABDYN . 4; KA = TABDYN . 5; KB = TABDYN . 6; ACTU = TABDYN . 7; TIME = TABDYN . 8; AXTAB = TABDYN . 9; XI0 = TABDYN . 10; XMIN = TABDYN . 11; AMMAX = TABDYN . 12; NC = TABDYN . 13; DPLUS = TABDYN . 14; DMOIN = TABDYN . 15; MAXDP = TABDYN . 16; MAXDM = TABDYN . 17; AOLD = TABDYN . 18; * Initialisation des parametres dynamiques F0 = (((KB + KA) / M)**0.5) / (2.0 * PI); V0 = 0.0; D0 = 0.0; FD = 0.0; W0 = ((2.0 * PI) * F0); XNL = XI0 - XMIN; CA = (M * (2.0 * (XI0 * W0))); K = (M * (W0**2.0)); S = 1.0 / (M + (((GAMMA * DT) * CA) + ((BETA * (DT**2)) * K))); * Table pour la loi de comportement * TAB1 . 1 = K1 -- pente elastique * TAB1 . 2 = K2 -- pente endommagee * TAB1 . 3 = K3 -- pente plastique * TAB1 . 4 = X0 -- seuil 1 * TAB1 . 5 = X1 -- seuil 2 TAB1 = TABLE; TAB1 . 1 = KA + KB; TAB1 . 2 = 0.515 * (TAB1 . 1); TAB1 . 3 = 0.017 * (TAB1 . 1); TAB1 . 4 = 0.0022; TAB1 . 5 = 0.024; * Calcul du chargement dynamique F = (-1.0 * (M * AXTAB)); * Nombre de pas de temps * Definition de quelques tables DT22 = (((DT**2.0) / 2.0) *(1.0 - (2.0 * beta))); DT21 = (1.0 - GAMMA) * DT; * Boucle sur les pas de temps I = 1; REPE BOU1 (NSTEP - 1); I = I + 1; * Valeur de l indice courant * Valeur du deplacement * Predicteur en deplacement DD = DD + ((1.0 - (2.0 * BETA)) * * Predicteur en vitesse * Residu initial RESDU = 1.0; SI (RESDU > 0.01); REPE BOU2 1; DJ = DD; * Input des variables internes DATA = TABLE; DATA . 1 = TABDYN . 15; DATA . 2 = TABDYN . 16; DATA . 3 = DJ; DATA . 4 = TABDYN . 17; DATA . 5 = TABDYN . 18; * Loi de comportement * Quelques stockages FO1 = TAB3 . 1; DPLUS = TAB3 . 2; DMOIN = TAB3 . 3; MAXDP = TAB3 . 4; MAXDM = TAB3 . 5; FF = TAB3 . 6; * Gestion du pourcentage d effort maximum SI (>EG I 4); SI (FCOUR > FD); FD = FCOUR; SINON; FINSI; SI (ET (ET (ET (FCOUR < FPREC) (FPREC > FPREC2)) SINON; FINSI; SINON; FINSI; * Parametres d actualisation de l amortissement * Quelques stockages TABDYN . 14 = DPLUS; TABDYN . 15 = DMOIN; TABDYN . 17 = MAXDP; TABDYN . 18 = MAXDM; * Calcul du coefficient d amortissement actualise SI (ACTU EGA 3); SINON; SI (ACTU EGA 2); SINON; SI (ACTU EGA 1); SINON; FINSI; FINSI; FINSI; * On sature le taux d amortissement FINSI; * On calcule le coefficient d amortissement * Inversion de la raideur dynamique ((BETA * (DT**2)) * K))); * On stocke les efforts * On calcule l acceleration * On corrige la vitesse et le deplacement TEMP2 = VV + ((GAMMA * DT) * TEMP1); TEMP3 = DD + (BETA * ((DT ** 2.0) * TEMP1)); * On calcule le residu RESDU = RESDU + (-1.0 * TEMP1); RESDU = RESDU + (-1.0 * TEMP1); FIN BOU2; FINSI; FIN BOU1; * On renvoie les evolutions de * deplacement, vitesse, l acceleration et l amortissement RESPRO EVDR EVVR EVAR EVXI TAB3; FINP;
© Cast3M 2003 - Tous droits réservés.
Mentions légales