* fichier : dyna14.dgibi ************************************************************************ ************************************************************************ ************************************************************************ * * Mots-clés : Vibrations, calcul modal, sous-structuration, * Craigh-Brampton, dynamique * TEST POUR LA SOUS-STRUCTURATION SANS UTILISATION DE BASE * Etude d'un ASSEMBLAGE DE 2 PLAQUES * Creation : D. COMBESCURE 30/09/2005 * Modif : B Prabel, 12/09/2014 : + sous-structuration libre-libre * ************************************************************************ * *GRAPH = VRAI; OPTI TRAC PSC EPTR 5 POTR HELVETICA_16; GRAPH = FAUX; * ************************************************************************ * Maillage ************************************************************************ nele = 1; q0 = 0. 0. ; vz = 0. 1; q1 = 5. 0. ; q2 = 10. 0. ; lig1 = d (5*nele) q0 q1 ; ligi0 = d nele q0 q3; ligi1 = d nele q1 q4; lig2 = d (5*nele) q1b q2 ; ligi1b = d nele q1b q4b; ligi2 = d nele q2 q5; surtot = sur1 et sur2; si (GRAPH); finsi; ************************************************************************ * Modèles et matrices ************************************************************************ * Plaque 1 * RIGPLA1= RIGPL1 et BLOQ1 ; *bp SPLA1 = STRU RIGPLA1 MASPL1; Meshi1 = ligi1; * * Plaque 2 * Meshi2 = ligi1b; RIGPLA2 = RIGPL2 et BLOQ2 ; * Liaison inter-plaque ENCL = (LIUX et LIUY); ************************************************************************ * Calcul du système complet sans sous-structuration ************************************************************************ * calcul des modes nmodo = 4; (RIGPLA2 et RIGPLA1 et ENCL) (MASPL2 et MASPL1) ; * calcul de la reponse forcee harmonique OMEGA = 50.; KDYN = (RIGPLA2 et RIGPLA1 et ENCL) et ( -1.*((2.*pi*OMEGA)**2) * (MASPL2 et MASPL1)); si GRAPH; finsi; ************************************************************************ * Methode de sous-structuration de Craigh brampton ************************************************************************ ********* Etape 1 : calcul des modes propres et statiques ********* * mode propre Plaque 1 (= modes propres "bloqués") * nmod1 = 1; (RIGPLA1 et BLOQ1L) MASPL1 ; i = 0; repe Bmod1 nmod1; i = i + 1 ; def1 = MODPLA1 . 'MODES' . i . 'DEFORMEE_MODALE'; frq1 = MODPLA1 . 'MODES' . i . 'FREQUENCE'; mm1 = MODPLA1 . 'MODES' . i . 'MASSE_GENERALISEE'; MESS cha1; fin Bmod1; * mode propre Plaque 2 (= modes propres "bloqués") * nmod2 = 1; (RIGPLA2 et BLOQ2L) MASPL2 ; * i = 0; repe Bmod2 nmod2; i = i + 1 ; def2 = MODPLA2 . 'MODES' . i . 'DEFORMEE_MODALE'; frq2 = MODPLA2 . 'MODES' . i . 'FREQUENCE'; mm2 = MODPLA2 . 'MODES' . i . 'MASSE_GENERALISEE'; MESS cha2; fin Bmod2; * modes statiques Plaque 1 (on impose u=1 sur chaque ddl) * creation de la table LIAISONS_STATIQUES * creation des blocages de chaque ddl individuellement * creation du 2nd membre associé à chaque blocage DEPI tblsta1; * resolution (statique) de chaque pb lineaire a deplacement imposé * calcul de chaque force de reaction REAC bliaiq1 tblsta1; i = 0; repe Bstat1 nstat1; i = i + 1; motinc = tblsta1 . i . 'DDL_LIAISON' ; ptrep1 = tblsta1 . i . 'POINT_REPERE' ; defsta1= tblsta1. i . 'DEFORMEE'; mess cha1; fin Bstat1; * modes statiques Plaque 2 (on impose u=1 sur chaque ddl) * creation de la table LIAISONS_STATIQUES * creation des blocages de chaque ddl individuellement * creation du 2nd membre associé à chaque blocage DEPI tblsta2; * resolution (statique) de chaque pb lineaire a deplacement imposé * calcul de chaque force de reaction REAC bliaiq2 tblsta2; i = 0; repe Bstat2 nstat2; i = i + 1; motinc = tblsta2 . i . 'DDL_LIAISON' ; ptrep2 = tblsta2 . i . 'POINT_REPERE' ; defsta2= tblsta2. i . 'DEFORMEE'; mess cha2; fin Bstat2; ********* Etape 2 : calcul des matrices projetees ********* * calcul direct via les operateur RIGI et MASS * on peut aussi passer par PJBA (plus couteux mais plus general) * projection de la liaison 1-2 : seul les modes statiques sont non-nuls * assemblage RIGMO = rigtot1 et rigtot2 et ENCLP; MASMO = mastot1 et mastot2; ****** Etape 3 : calcul sur système complet sur base réduite ******* * * calcul des modes * calcul de la reponse forcee harmonique KDYNSS = RIGMO et ( -1.*((2.*pi*OMEGA)**2) * MASMO); ************************************************************************ * Methode de sous-structuration libre-libre ************************************************************************ * mode propre Plaque 1 (= modes propres "libres") * nmod1 = 4; (RIGPLA1) MASPL1 ; * mode propre Plaque 2 (= modes propres "libres") * nmod2 = 4; (RIGPLA2) MASPL2 ; * reunion des 2 bases MODPLL = MODPLL1 et MODPLL2; * i = 0; repe Bmod (nmod1 + nmod2); i = i + 1 ; def = MODPLL . 'MODES' . i . 'DEFORMEE_MODALE'; frq = MODPLL . 'MODES' . i . 'FREQUENCE'; mm = MODPLL . 'MODES' . i . 'MASSE_GENERALISEE'; MESS cha; fin Bmod; * equation de liaison projetee sur la base libre * calcul des modes du système complet * SOL_LL = VIBR 'PROCH' (PROG 0.1) (lect nmodo) (RIGLL et ENCLL) MASLL ; * calcul de la reponse forcee harmonique * F1_LL = PJBA F1 MODPLL; KDYNLL = RIGLL et ENCLL et ( -1.*((2.*pi*OMEGA)**2) * MASLL); ************************************************************************ * Comparaison des resultats obtenus avec diverses methodes ************************************************************************ * calcul des modes i = 0; REPE BMODO nmodo; i = i + 1 ; fr1ref = SOLREF . 'MODES' . i . 'FREQUENCE'; fr1_ss = SOL_SS . 'MODES' . i . 'FREQUENCE'; fr1_ll = SOL_LL . 'MODES' . i . 'FREQUENCE'; MESS i fr1ref fr1_ss fr1_ll; si (GRAPH); def0 = SOLREF. 'MODES' . i . 'DEFORMEE_MODALE'; finsi; * fin BMODO; * calcul de la reponse forcee harmonique si GRAPH; amp = 2000.; finsi; mess UY1ref UY1_ss UY1_LL; ************************************************************************ * Test de Non Regression ************************************************************************ fr1ref = SOLREF . 'MODES' . 1 . 'FREQUENCE'; fr1_ss = SOL_SS . 'MODES' . 1 . 'FREQUENCE'; fr1_ll = SOL_LL . 'MODES' . 1 . 'FREQUENCE'; erel1 = abs ((fr1_ss - fr1ref)/fr1ref); erel2 = abs ((fr1_ll - fr1ref)/fr1ref); erel3 = abs ((UY1_ss - UY1ref) / UY1ref); erel4 = abs ((UY1_LL - UY1ref) / UY1ref); * les resultats obtenus par la methode libre-libre sont assez mauvais * dans ce cas de figure --> grande tolerance sur les valeurs testees SI ((erel1 < 0.01) et (erel2 < 0.20) et (erel3 < 0.01) et (erel4 < 0.50)); SINON; FINSI; * FIN ; * *
© Cast3M 2003 - Tous droits réservés.
Mentions légales