Download vibr7.dgibi

Back to the list

* fichier :  vibr7.dgibi
complet = faux;
*
*************************************************
*  pour calcul complet mettre complet à : vrai;
*************************************************
*************************************************
* TEST : VIBR7                                  *
*          Modele de CONNORS - BLEVINS          *
*   Calcul des modes propres complexes d'un     *
*   arbre soumis a un ecoulement exterieur      *
*            transverse permanent               *
* Conditions aux limites : articule - articule  *
*************************************************
*
Opti Echo 0;
*
*--- Affichage
AFFICH = VRAI;
GRAPH = 'N';
IMPRPS = FAUX;
*
*Si (NON AFFICH);
*  Opti Echo 1;
*Finsi;
Si (IMPRPS);
  Opti Trac ps;
Finsi;
************************************
*   Caracteristiques du systeme    *
************************************
*--- Materiau
Rhostru = 4000.;
Youstru = 1.E10;
Nustru = 0.;
*--- Longueur du crayon
Lstru = 2.;
*--- Rayon du crayon
R = 10.E-3;
*--- Section du crayon
Sstru = PI*R*R;
*--- Masse lineique du crayon
Ms = Rhostru*Sstru;
*--- Amortissement structural
Dzeta =1.E-2;
*--- Masse volumique du fluide
Rhof = 1000.;
*--- Masse ajoutee du fluide (fluide non confine)
Mfaj = Rhof*PI*R*R;
*--- Masse volumique equivalente
Rhoe = (Ms+Mfaj)/Sstru;
*--- Constante d'instabilite
K = 3.;
*--- Vitesse transverse du fluide
Vmin = 0.;
Vmax = 1.;
si complet;
PVt = .01;
sinon;
pvt = .05;
finsi;
*
LVt = Prog Vmin PAS PVt Vmax;
*
**************************************
*         Maillage du systeme        *
**************************************
*
NbN = 100;
Mess 'Nombre d elements :' NbN;
Mess ' ';
Opti Dime 3 Elem Seg2;
PA = (-.5*Lstru) 0. 0.;
PB = (.5*Lstru) 0. 0.;
L1 = Droi NbN PA PB;
*
Modl1 = Modl L1 Mecanique Elastique Isotrope Tuya;
Matr1 = Matr Modl1 Youn Youstru Nu Nustru Rho Rhoe Epai R Rayo R;
*
**************************************
*   Masses, Rigidites ... du systeme *
**************************************
*
*--- Masse
Mstru = Masse Modl1 Matr1;
*--- Raideur structrale
Kstru = Rigi Modl1 Matr1;
*--- Conditions aux limites : Probleme plan
Cl1 = Bloq Ux L1;
Cl2 = Bloq Uy L1;
Cl3 = Bloq Rx L1;
Cl4 = Bloq Rz L1;
Cl5 = Bloq Uz (PA et PB);
*
Kstru = Kstru et Cl1 et Cl2 et Cl3 et Cl4 et CL5;
*
*****************************************
*             Analyse modale            *
*****************************************
*
PMod = Prog 2.77 11.1 24.99 44.43 69.42;
Basr = VIBR PROCH PMod Kstru Mstru TBAS;
nnor (Basr.'MODES') (mots 'UZ');
*
Basm = Basr.'MODES';
Nbmod = DIME Basm-2;
*--- Liste des vitesses critiques, des masses generalisees et des pulsations
LVc = Prog;
LM = Prog ;
LW = Prog ;
Si (Affich);
  Mess ' ';
  Mess 'Fluide a l arret';
  Mess '    Mode     Frequence ';
  Mess '---------------------------';
Finsi;
Repeter LMod Nbmod;
  i=&LMod;
  f = Basm.i.'FREQUENCE';
  mi = Basm.i.'MASSE_GENERALISEE';
  Si (Affich);
    Mess '   ' i '   ' f;
  Finsi;
  LW = LW et (Prog (2*PI*f));
  LVc = LVc et
      (Prog ( K*((2*PI*mi*f*f*Dzeta*2/(Lstru*Rhof))**0.5)) );
  LM = LM et (Prog mi);
Fin LMod;
* --- Constitution du maillage support pour l'amortissement
LPt = Basm.1 .'POINT_REPERE';
Repeter LPoint (Nbmod-1);
   i=&LPoint + 1;
  pti = Basm.i.'POINT_REPERE';
  LPt = LPt et pti;
Fin LPoint;
Mail = Manu 'SUPE' LPt;
*
Si (Affich);
  Mess ' ';
  Mess ' ';
  Mess ' ';
Finsi;
*
*****************************************
* Mise en forme du tableau de resultats *
*****************************************
*
Mod = Table;
Mod.Reel = Table;
Mod.Imag = Table;
Repeter Bloc6 (2*Nbmod);
  i=&Bloc6;
  Mod.Reel.i=Prog;
  Mod.Imag.i=Prog;
Fin Bloc6;
*
*****************************************
*        Projection des matrices        *
*****************************************
*
*--- Matrice masse
Mt = (PJBA MStru Basr);
*--- Matrices de raideur
Kt = (PJBA Kstru Basr);
*
*--- Reperage de la vitesse critique
VSauv = 'N';
*
* ========================================= *
*      Boucle sur la vitesse transverse     *
* ========================================= *
*
Repeter Bloc10 (DIME LVt);
  k=&Bloc10;
  Vt = Extr LVt k;
  Si (AFFICH);
  Mess 'Iteration' k;
  Mess 'Vitesse transverse : ' Vt ;
  Mess ' ';
  Mess '----------------------------------------------------------------
--------------';
  Mess '  Mode     Frequence      Amort.      P. Reelle    P. Imaginaire
   Stabilité  ';
  Finsi;
*
*
*****************************************
*         Masses, rigidites ...          *
******************************************
*
*---- Amortissement
  LDzeta = Prog;
  Repeter Bamor Nbmod;
    k = &Bamor;
    Vck = Extr LVc k;
    Mk = Extr LM k;
    Wk = Extr LW k;
    Ak =  2*Mk*Wk*Dzeta*(1-((Vt/Vck)**2));
    LDzeta = LDzeta et (Prog Ak);
    Si (Neg k Nbmod);
      LDzeta = LDzeta et (Prog Nbmod*0.);
    Finsi;
  Fin Bamor;
  At = Manu Rigi type AMORTISSEMENT Mail (MOTS 'ALFA')
                                      DUAL (MOTS 'FALF') LDzeta;
*
******************************************
*       Calcul des modes complexes       *
******************************************
*
  Basc = VIBC Mt Kt At;
  Basm = Basc.'MODES';
*
*--- Extraction des frequences
  Prf = Prog;
  Pif = Prog;
  Repeter Bloc2 (2*Nbmod);
    i=&Bloc2;
    Modn = Basm.i;
    f = Modn.'FREQUENCE_REELLE';
*    Si (>EG f 0.);
      Prf = Prf et (Prog Modn.'FREQUENCE_REELLE');
      Pif = Pif et (Prog Modn.'FREQUENCE_IMAGINAIRE');
*    Finsi;
  Fin bloc2;
*
*--- Tri croissant des frequences
  n1 = DIME Prf;
  Prfc = Prog (extr Prf 1);
  Pifc = Prog (extr Pif 1);
  Repeter Bloc3 (n1-1);
    i=&Bloc3+1;
    f = extr Prf i;
    n2 = DIME Prfc;
    Pos = 1;
    Repeter Bloc4 n2;
      j = &Bloc4;
      f1 = extr Prfc j;
      Si (> f f1);
        Pos = Pos + 1;
      Finsi;
    Fin Bloc4;
    Prfc = INSE Prfc Pos f;
    Pifc = INSE Pifc Pos (extr Pif i);
  Fin Bloc3;
*--- Sauvegarde
  Repeter Bloc5 n1;
    i=&Bloc5;
    f =  (Extr Prfc i);
    if = (Extr Pifc i);
    Si (AFFICH);
      Msg = 'STAB.';
      Si ((< if -1.D-10) et (>EG f 0.));
        Msg = 'INST.';
        Si (EGA VSauv 'N');
          Vcrit = Vt - (PVt/2.);
          VSauv = 'O';
        Finsi;
      Finsi;
      Si (> f 0.);
*  Valeurs propres relatives a lambda = i omega = ix2PIxf
        Mess  i  f  (if/f)  (-2*PI*if)  (2*PI*f) Msg;
      Sinon;
        Si (EGA f 0.);
          Mess i f '     -----     ' (-2*PI*if) (2*PI*f) Msg;
        Finsi;
      Finsi;
    Finsi;
    Mod.Reel.i = Mod.Reel.i et (Prog f);
    Mod.Imag.i = Mod.Imag.i et (Prog if);
  Fin Bloc5;
  Si (AFFICH);
  Mess '----------------------------------------------------------------
--------------';
  Mess ' ';
  Finsi;
*
Fin Bloc10;
*
**********************************
*           Traces               *
**********************************
*
*
Si (EGA GRAPH 'O');
*
Nbcour = 2*NbMod;
*
*
Tab1 = Table;
Repeter Ident1 Nbcour;
  k=&Ident1;
  Tab1.k = 'NOLI';
Fin Ident1;
*
  k= 1;
*--- Traces relatifs a la frequence
  Titr 'Frequences (partie reelle)';
  Evol1 = Evol BLAN manu Lvt (Mod.Reel.k);
  Titr 'Frequences (partie imaginaire)';
  Evol2 = Evol BLAN manu Lvt (Mod.Imag.k);
*---  Traces relatifs a lambda = i omega = ix2PIxf
  Titr 'Lambda partie reelle)';
  Evol3 = Evol BLAN manu Lvt (-2.*PI*(Mod.Imag.k));
  Titr 'Lambda (partie imaginaire)';
  Evol4 = Evol BLAN manu Lvt (2*PI*(Mod.Reel.k));
  Titr 'Lambda (partie reelle / partie imaginaire)';
  Evol5 = Evol BLAN manu (2.*PI*(Mod.Reel.k))
                             (-2.*PI*(Mod.Imag.k));
  Repeter Trac1 (Nbcour-1);
    k=&Trac1+1;
    Si (> (DIME Mod.Reel.k) 0);
      Titr 'Frequences (partie reelle)';
      Evol1 = Evol1 et (Evol BLAN manu Lvt (Mod.Reel.k));
      Titr 'Frequences (partie imaginaire)';
      Evol2 = Evol2 et (Evol BLAN manu Lvt (Mod.Imag.k));
      Titr 'Lambda (partie reelle)';
      Evol3 = Evol3 et (Evol BLAN manu Lvt
                                      (-2.*PI*(Mod.Imag.k)));
      Titr 'Lambda (partie imaginaire)';
      Evol4 = Evol4 et (Evol BLAN manu Lvt
                                      (2.*PI*(Mod.Reel.k)));
      Titr 'Lambda (partie reelle / partie imaginaire)';
      Evol5 = Evol5 et (Evol BLAN manu
                  (2.*PI*(Mod.Reel.k)) (-2.*PI*(Mod.Imag.k)));
    Finsi;
  Fin Trac1;
*
  Dess Evol1 XBOR 0. 1.20 YBOR 0. 70. Lege
                         Titx 'Vtr (m/s)'
                         Tity 'Re(F) (Hz)' Tab1;
  Dess Evol2 Lege
                         Titx 'Vtr (m/s)'
                         Tity 'Im(F) (Hz)' Tab1;
  Dess Evol3 XBOR 0. 1.20 YBOR -10. 50. Lege
                         Titx 'Vtr (m/s)'
                         Tity 'Re(i.2.PI.F)'  Tab1;
  Dess Evol4 XBOR 0. 1.20 YBOR 0. 450. Lege
                         Titx 'Vtr (m/s)'
                         Tity 'Im(i.2.PI.F)' Tab1;
  Dess Evol5 XBOR 0. 500. YBOR -10. 50. Lege
                         Titx 'Re(i.2.PI.F)'
                         Tity 'Im(i.2.PI.F)' Tab1;
Finsi;
*
*************************************
*    Test de bon fonctionnement     *
*************************************
*
Vcrit1 = Extr LVc 1;
*Mess 'Erreur : ' (Abs(Vcrit-Vcrit1)/Vcrit1);
*opti donn 5;
si complet ;
erma = 0.05;
sinon;
erma = 0.1;
finsi;
Si ((Abs(Vcrit-Vcrit1)/Vcrit1) < erma);
  Erre 0;
Sinon;
  Erre 5;
Finsi;
*
FIN;
 

© Cast3M 2003 - All rights reserved.
Disclaimer