Download rotor3.dgibi

Back to the list

* fichier :  rotor3.dgibi
******************************************************************
*
*
*           Test de GYROSCOPIQUE, CAMPBELL et BALOURD
*           pour les elements de poutre
*           Etude d'une machine tournante
*            dans le repere inertiel (ou fixe)
*           Elements: POUT
*
*
*
*         3 Volants d'inertie sur 2 appuis anisotropes
*
*                 Exemple Lalanne P.68
*
*              Didier Combescure Juillet 2003
*
******************************************************************
*
*GRAPH = 'Y';
GRAPH = 'N';
*
* Caractéristiques de l'arbre et du volant d'inertie
*
Ltot = 0.40 ;
L1 = 0.2;
L2 = 0.3 + L1;
L3 = 0.5 + L2;
L4 = 0.3 + L3;
*
ReRot = 0.05 ;
Re1 = 0.12 ;
Re2 = 0.20 ;
Re3 = 0.20 ;
h1 = 0.05;
h2 = 0.05;
h3 = 0.06;
*
E1 = 2.e+11 ;
Nu1 = 0.3 ;
Rho1 = 7800. ;
*
Sarbre = pi*(ReRot**2);
Inxarb = pi*(ReRot**4)/2.;
Inyarb = pi*(ReRot**4)/4.;
*
Svol1 = pi*(Re1**2);
Inxvol1 = pi*(Re1**4)/2.;
Inyvol1 = pi*(Re1**4)/4.;
*
Svol2 = pi*(Re2**2);
Inxvol2 = pi*(Re2**4)/2.;
Inyvol2 = pi*(Re2**4)/4.;
*
Svol3 = pi*(Re3**2);
Inxvol3 = pi*(Re3**4)/2.;
Inyvol3 = pi*(Re3**4)/4.;
*
* Raideur et amortissement des supports
*
Ky = 70000000.;
Kz = 50000000.;
Cy = 700.;
Cz = 500.;
*
* Maillage de poutre
*
OPTI 'DIME' 3 'ELEM' SEG2;
*
P0 = 0. 0. 0.;
P1volm = (L1 - (0.5*h1))  0.  0. ;
P1 = (L1)  0.  0. ;
P1volp = (L1 + (0.5*h1))  0.  0. ;
P1 = L1  0.  0. ;
P2volm = (L2 - (0.5*h2))  0.  0. ;
P2 = L2  0.  0. ;
P2volp = (L2 + (0.5*h2))  0.  0. ;
P3volm = (L3 - (0.5*h3))  0.  0. ;
P3 = L3  0.  0. ;
P3volp = (L3 + (0.5*h3))  0.  0. ;
P4 = L4  0.  0. ;
*
GeoArbre = (D 5 P0 P1volm) et (D 5 P1volp P2volm) et (D 5 P2volp P3volm)
       et (D 5 P3volp P4);
GeoVol1 = (D 1 P1volm P1) et (D 1 P1 P1volp);
GeoVol2 = (D 1 P2volm P2) et (D 1 P2 P2volp);
GeoVol3 = (D 1 P3volm P3) et (D 1 P3 P3volp);
*
Geotot = GeoArbre et GeoVol1 et GeoVol2 et GeoVol3;
*
* Elément POUT
*
Mod1a = MODL GeoArbre 'MECANIQUE' POUT;
Mat1a = MATE Mod1a 'YOUNG' E1 'NU' Nu1 'RHO' Rho1
        'SECT' Sarbre 'INRY' Inyarb 'INRZ' Inyarb 'TORS' Inxarb
        'OMEG' 1.;
Mod1b = MODL GeoVol1 'MECANIQUE' POUT;
Mat1b = MATE Mod1b 'YOUNG' E1 'NU' Nu1 'RHO' Rho1
        'SECT' Svol1 'INRY' Inyvol1 'INRZ' Inyvol1
        'TORS' Inxvol1 'OMEG' 1.;
Mod1c = MODL GeoVol2 'MECANIQUE' POUT;
Mat1c = MATE Mod1c 'YOUNG' E1 'NU' Nu1 'RHO' Rho1
        'SECT' Svol2 'INRY' Inyvol2 'INRZ' Inyvol2
        'TORS' Inxvol2 'OMEG' 1.;
Mod1d = MODL GeoVol3 'MECANIQUE' POUT;
Mat1d = MATE Mod1d 'YOUNG' E1 'NU' Nu1 'RHO' Rho1
        'SECT' Svol3 'INRY' Inyvol3 'INRZ' Inyvol3
        'TORS' Inxvol3 'OMEG' 1.;
*
mod1 = mod1a et mod1b et mod1c et mod1d;
mat1 = mat1a et mat1b et mat1c et mat1d;
*
* Visualisation avec POUT2MAS
*
TAB1 =TABLE;
TAB1.'POUTRE' = table;
(TAB1.'POUTRE').'CIRCULAIRE' = VRAI ;
(TAB1.'POUTRE').'NCIRC' = 40 ;
*
SI (EGA GRAPH 'Y');
 MESHVOL = POUT2MAS mod1 mat1 GAUSS TAB1;
 trac MESHVOL cach;
 MESHVOL = POUT2MAS  mod1 mat1  MASSIF TAB1;
 elim 0.0001 (MESHVOL);
 trac MESHVOL cach;
FINSI;
*
* Cond. limites : 2 appuis
*
Blo1 = (BLOQ 'RX' Geotot) et (BLOQ 'UX' Geotot);
*
Kxp= (APPUI UY KY p0) et (APPUI UY KY p4);
Kyp= (APPUI UZ KZ p0) et (APPUI UZ KZ p4);
Cxp= (APPUI UY CY p0) et (APPUI UY CY p4);
Cyp= (APPUI UZ CZ p0) et (APPUI UZ CZ p4);
*
Kappui = Kxp et Kyp;
Cappui = Cxp et Cyp;
*
MMass1 = MASS Mod1 (Mat1) ;
MRigi1 = RIGI Mod1 (Mat1) ;
*
* Matrice de couplage gyroscopique
*
 CG1 = GYROSCOPIQUE Mod1 Mat1;
*
* Calcul des modes propres réels
*
TBasR1 = VIBR 'PROCHE' (prog 100.) (lect 12)
           (MRigi1 ET  Blo1 et Kappui)
             MMass1 'TBAS' ;
*
TMod1 = TBasR1 . 'MODES' ;
NbMod1 = (DIME TMod1) - 2 ;
TInd1 = INDEX (TMod1 . 1) ;
*
SI (EGA GRAPH 'Y');
 oeil = 1. 10. 0. ;
 REPETER bbb1 NbMod1 ;
  i = &bbb1 ;
  Frq1 = TMod1 . i . 'FREQUENCE' ;
  Def1 = TMod1 . i . 'DEFORMEE_MODALE' ;
  MESS 'Mode ' i ':' Frq1 'Hz' ;
  TITRE Frq1 ;
  trac oeil ((defo geotot def1) et (defo geotot def1 0.));
 FIN bbb1 ;
*
 TAB1 =TABLE;
 TAB1.'POUTRE' = table;
 (TAB1.'POUTRE').'CIRCULAIRE' = VRAI ;
 (TAB1.'POUTRE').'NCIRC' = 40 ;
 TAB1.'DEPLACEMENTS' = TABLE;
 (TAB1.'DEPLACEMENTS'). 1 = (TMod1 . 4) . 'DEFORMEE_MODALE' ;
*
 MESHVOL = POUT2MAS mod1 mat1 GAUSS TAB1;
 trac (defo MESHVOL ((TAB1.'DEPLACEMENTS'). 1)) cach;
FINSI;
*
*-Projection des matrices assemblées sur la base réelle
*
  MMasP1 = PJBA TBasR1 MMass1 ;
  MRigP1 = PJBA TBasR1 MRigi1 ;
  Cg1P = PJBA TBasR1 Cg1 ;
  KApp1p =  PJBA TBasR1 (Kappui et Blo1);
  CApp1p =  PJBA TBasR1 Cappui;
*
* Calcul des fréquences à 25000 tours/min
*
  Omega1 = 25000.*2.*pi/60.;
  BasCiB = VIBC MMasP1 (MRigP1 et KApp1p)
           ((Omega1*Cg1P) et CApp1p) TBasR1 ;
    Repeter Lab0 (2*NbMod1);
       i2 = &lab0;
       si (i2 ega 1);
          F25Reel = PROG (BasCiB.'MODES'. i2 . 'FREQUENCE_REELLE');
          F25Imag = PROG (BasCiB.'MODES'. i2 . 'FREQUENCE_IMAGINAIRE');
          F25Modul =  PROG
           ((((BasCiB.'MODES'. i2 . 'FREQUENCE_REELLE')**2) +
             ((BasCiB.'MODES'. i2 . 'FREQUENCE_IMAGINAIRE')**2))**0.5);
          Am25Val = PROG ((extr F25Imag 1)/(extr F25Modul 1));
       sinon;
          F25Reel = F25Reel et
           (prog (BasCiB.'MODES'. i2 . 'FREQUENCE_REELLE'));
          F25Imag = F25Imag et
           (prog (BasCiB.'MODES'. i2 . 'FREQUENCE_IMAGINAIRE'));
          F25Modul =  F25Modul et (PROG
           ((((BasCiB.'MODES'. i2 . 'FREQUENCE_REELLE')**2) +
             ((BasCiB.'MODES'. i2 . 'FREQUENCE_IMAGINAIRE')**2))**0.5));
          Am25Val = Am25Val et
                  (PROG ((extr F25Imag i2)/(extr F25Modul i2)));
       finsi;
    FIN lab0;
*
    F25Reel  = ORDONNER CROISSANT F25Reel;
    F25Imag  = ORDONNER CROISSANT F25Imag;
    F25Modul = ORDONNER CROISSANT F25Modul;
    Am25Val  = ORDONNER CROISSANT Am25Val;
*-------------------------------------------------------*
*
* Calcul du diagramme de Campbell - Modèle 1 (POUTRE)
*
*-------------------------------------------------------*
TAB1 = TABLE;
TAB1.'BASE_MODALE' = TBasR1 ;
TAB1.'MASS_PROJ' = MMasP1;
TAB1.'RIGI_PROJ' = MRigP1 et KApp1p;
TAB1.'AMOR_PROJ' = CApp1p;
TAB1.'GYRO_PROJ' = Cg1P;
TAB1.'AFFICHAGE' = VRAI;
PRFREQ = ((35000./60.)*0.2*pi)*(prog 0. pas 10. 100.);
CAMPBELL TAB1 PRFREQ;
*
FacUnite = (60./(2.*pi));
*
TMod1 = (TAB1.'BASE_MODALE') . 'MODES' ;
NbModR = (DIME ((TAB1.'BASE_MODALE').'MODES')) - 2 ;
NbModC = 2*NbModR;
repeter lab1 NbModC;
  i1= &lab1;
   si (i1 ega 1);
      EVTOT = EVOL MANU  (FacUnite*PRFREQ )
           ((EXTR ((TAB1. i1). 'FREQUENCE_REELLE') ORDO)) ;
      EVAMOT = EVOL MANU  (FacUnite*PRFREQ )
           ((EXTR ((TAB1. i1). 'AMORTISSEMENT') ORDO)) ;
   sinon;
     EVTOT = EVTOT et
            (EVOL MANU  (FacUnite*PRFREQ )
           ((EXTR ((TAB1. i1). 'FREQUENCE_REELLE') ORDO)) );
      EVAMOT = EVAMOT et
             (EVOL MANU  (FacUnite*PRFREQ )
           ((EXTR ((TAB1. i1). 'AMORTISSEMENT') ORDO)) );
   finsi;
FIN lab1;
*
SI (EGA GRAPH 'Y');
 Titre 'Diagramme de Campbell';
 dess (evtot et
   (evol rouge manu (prog 0. 35000.) ((prog 0. 35000.)/60.))
 et (evol rouge manu (prog 0. 35000.) ((prog 0. 35000.)/120.)) )
     xbord 0. 35000.  ybord 0. 1200. ;
 dess (EVAMOT)  xbord 0. 35000.;
FINSI;
*---------------------------*
*
* Réponse à un balourd
*
*----------------------------*
md = 0.0002;
FbalReel = FORCE ( 0. (md) 0. ) P2;
FbalImag = FORCE ( 0. 0. ((-1.)*md) ) P2;
promeg = prog ((100./60.)*2.*pi) pas ((100./60.)*2.*pi)
  ((3200./60.)*2.*pi) pas ((2./60.)*2.*pi) ((4200./60.)*2.*pi)
    pas ((100./60.)*2.*pi) ((35000./60.).*2.*pi);
*
TAB1 = TABLE;
TAB1.'BASE_MODALE' = TBasR1 ;
TAB1.'MASS_PROJ' = MMasP1;
TAB1.'RIGI_PROJ' = MRigP1 et KApp1p;
TAB1.'GYRO_PROJ' = Cg1P;
TAB1.'AMOR_PROJ' = CApp1p;
TAB1.'AFFICHAGE' = VRAI;
TAB1.'FBALOURD' = FbalReel;
*TAB1.'FBALREEL' = FbalReel;
*TAB1.'FBALIMAG' = FbalImag;
TAB1.'SAUVDEFO' = FAUX;
TAB1.'REPONSE' = TABLE;
(TAB1.'REPONSE'). 1  = TABLE;
((TAB1.'REPONSE'). 1 ). 'POINT' = P2;
BALOURD TAB1 promeg;
*
EvUYbal = EVOL MANU (60.*promeg/(2.*pi))
        (extr (((TAB1.'REPONSE'). 1) . 'UY' ) ordo);
EvUZbal =  EVOL MANU (60.*promeg/(2.*pi))
       (extr  (((TAB1.'REPONSE'). 1) . 'UZ' ) ordo);
EvGabal =  EVOL MANU (60.*promeg/(2.*pi))
        (extr (((TAB1.'REPONSE'). 1) . 'GAXE') ordo);
EvPabal =  EVOL rouge MANU (60.*promeg/(2.*pi))
        (extr (((TAB1.'REPONSE'). 1) . 'PAXE') ordo);
EvAngEl =  EVOL MANU (60.*promeg/(2.*pi))
        (extr (((TAB1.'REPONSE'). 1) . 'ANGLEGAXE') ordo);
*
SI (EGA GRAPH 'Y');
 TITRE 'Amplitude suivant le grand axe';
 DESS EvGabal   LOGY xbord 0. 35000. ybord 1.E-7 1.E-1;
 TITRE 'Amplitude suivant le grand et le petit axe';
 DESS (EvGabal et EvPabal) LOGY xbord 0. 35000. ybord 1.E-7 1.E-1;
 TITRE 'Amplitude suivant le grand axe - 1ere fréquence critique';
 dess EvGabal   LOGY xbord 0. 7000. ybord 1.E-7 1.E-1;
 'DESS' (EvUYbal)  LOGY xbord 0. 7000. ybord 1.E-7 1.E-1;
 'DESS' (EvUZbal)  LOGY xbord 0. 7000. ybord 1.E-7 1.E-1;
FINSI;
*
AmpBal=extr (ipol (prog 30000.) (extr EvGabal absc)
              (extr EvGabal ordo)) 1;
AmpBaTh = 1.6736D-5;
SI (ABS((AmpBal - AmpBaTh)/AmpBaTh) < 5.D-2);
  ERRE 0;
SINON;
  ERRE 5;
FINSI;
*
FIN;
*

 

© Cast3M 2003 - All rights reserved.
Disclaimer