* @MASSMOD PROCEDUR FD218221 26/06/11 21:15:06 12572 *---------------------------------------------------------------------* * NOM : @MASSMOD * * * * DESCRIPTION : CALCUL DES MASSES MODALES EFFECTIVES MOBILISEES * * SELON LES DIRECTIONS DE MOUVEMENT (X, Y, Z) POUR * * CHAQUE MODE PROPRE, SUITE A UNE ANALYSE MODALE * * REALISEE PAR L'OPERATEUR VIBR. * * * * SYNTAXE : TABRESU = @MASSMOD TAB_VIBR MASS1 ; * * * * * * LANGAGE : GIBIANE-CAST3M * * AUTEUR : Abdelhafid NOUALI (SIMCO - SIAME - UPPA) * * COURRIEL : a.nouali@univ-pau.fr * *---------------------------------------------------------------------* * DEBPROC @MASSMOD TAB1*'TABLE' MASS1*'RIGIDITE' ; * *---------------------------------------------------------------------- * 1. INITIALISATIONS *---------------------------------------------------------------------- * * * Masse totale = resultante des forces FX obtenues en multipliant * la matrice de masse par un champ de translation rigide unitaire * selon X. * * Listes destinees a recevoir les resultats mode par mode * *---------------------------------------------------------------------- * 2. DETECTION DES DIRECTIONS DE TRANSLATION ACTIVES *---------------------------------------------------------------------- * * On teste sur le premier mode la presence des composantes duales * FX, FY, FZ apres produit deformee * matrice de masse. TEST = ((TAB1 . 'MODES' . 1) . 'DEFORMEE_MODALE') * MASS1 ; * *---------------------------------------------------------------------- * 3. BOUCLE SUR LES MODES PROPRES *---------------------------------------------------------------------- * REPETER BOU1 NB_MODE ; * BASE_M = TAB1 . 'MODES' . &BOU1 ; F_MODALE = BASE_M . 'FREQUENCE' ; D_MODALE = BASE_M . 'DEFORMEE_MODALE' ; M_GENER = BASE_M . 'MASSE_GENERALISEE' ; * * * Masses modales effectives : m_eff_i,j = L_i,j^2 / M_gen,i * avec L_i,j = facteur de participation = somme nodale du produit * (matrice de masse * deformee), projete sur la direction j. * SI DIR_X ; FINSI ; * SI DIR_Y ; FINSI ; * SI DIR_Z ; FINSI ; * FIN BOU1 ; * *---------------------------------------------------------------------- * 4. CONSTRUCTION DE LA TABLE RESULTAT *---------------------------------------------------------------------- * * On ajoute la somme cumulee en fin de chaque liste de masses. TABRESU = TABLE ; TABRESU . ' FREQ_(Hz)'= L_FREQ ; * SI DIR_X ; TABRESU . ' MASSE-X_(%)' = L_MX ; FINSI ; SI DIR_Y ; TABRESU . ' MASSE-Y_(%)' = L_MY ; FINSI ; SI DIR_Z ; TABRESU . ' MASSE-Z_(%)' = L_MZ ; FINSI ; * * *---------------------------------------------------------------------- * 5. AFFICHAGE DES RESULTATS DANS LE TERMINAL *---------------------------------------------------------------------- * IND = INDEX TABRESU ; * MESS ; MESS ; * * Ligne d'en-tete : noms des colonnes de la table REPETER BOU3 (D_IND - 2) ; FIN BOU3 ; MESS TETE ; * * Lignes : une par mode REPETER BOU2 NB_MODE ; REPETER BOU3 (D_IND - 2) ; FIN BOU3 ; MESS INTER ; FIN BOU2 ; * MESS ; * * Ligne de cumul : somme par direction (derniere valeur de chaque liste) REPETER BOU3 (D_IND - 3) ; FIN BOU3 ; MESS TOT1 ; * MESS ; MESS ; MESS ; * *---------------------------------------------------------------------- * FINPROC TABRESU ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales