Test name
vibr6
Calculation type
MECHANICS DYNAMICS 3D
COMPOUND EIGEN SHAPES
Finite element type
TUYA
Topic
Compound eigen modes of a rod.
The rod is subjected to an external axial permanent flow. Both the tips of the rod are articulated.
Computations are made for different flow velocities (0 up to 120 m/s).
Goal
Find the real and imaginary parts of frequencies for the different velocities.
Reference
Model of Paidoussis & Ortoja-Starzewski.
Version
97' customer version
Model description


Test vibr6 Results
Results
Velocity V = 0

Velocity V = 120 m/s

CASTEM figures

* Test Vibr6.dgibi: Jeux de données *
* --------------------------------- *
* *
**************************************************
* TEST : VIBR6 *
* *
* Modele de PAIDOUSSIS & ORTOJA-STARZEWSKI *
* *
* On recherche ici les modes propres *
* complexes d'un arbre soumis a un ecoulement *
* Arbre soumis a un ecoulement exterieur *
* axial 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
Mstru = Rhostru*Sstru;
*--- Masse volumique du fluide
Rhof = 1000.;
*--- Masse ajoutee du fluide (fluide non confine)
Mfaj = Rhof*PI*R*R;
*--- Masse volumique equivalente
Rhoe = (Mstru+Mfaj)/Sstru;
*--- Vitesse axiale du fluide
Vmin = 0.;
Vmax = 120.;
PVa = 1.;
*
LVa = Prog Vmin PAS PVa Vmax;
*
**************************************
* Maillage du systeme *
**************************************
*
NbN = 100;
Mess 'Nombre de noeuds :' 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;
*
***********************************
* Rigidites supplementaires *
***********************************
*
Lpout = Lstru/NbN;
*
*--- Amortissement du a l'écoulement
PAfu =
(Prog -.5 0. 0. (Lpout/10.) .5 0. 0. (-1.*Lpout/10.) );
PAfu = PAfu et
(Prog 0. -.5 (-1.*Lpout/10.) 0. 0. .5 (Lpout/10.) 0.);
PAfu = PAfu et
(Prog 0. (Lpout/10.) 0. 0. 0. (-1.*Lpout/10.)
(-1.*Lpout*Lpout/60.) 0.);
PAfu = PAfu et
(Prog (-1.*Lpout/10.) 0. 0. 0. (Lpout/10.) 0. 0.
(-1.*Lpout*Lpout/60.));
PAfu = PAfu et
(Prog -.5 0. 0. (-1.*Lpout/10.) .5 0. 0. (Lpout/10.) );
PAfu = PAfu et
(Prog 0. -.5 (Lpout/10.) 0. 0. .5 (-1.*Lpout/10.) 0. );
PAfu = PAfu et
(Prog 0. (-1.*Lpout/10.) (Lpout*Lpout/60.) 0. 0.
(Lpout/10.) 0. 0. );
PAfu = PAfu et
(Prog (Lpout/10.) 0. 0. (Lpout*Lpout/60.)
(-1.*Lpout/10.) 0. 0. 0. );
Afu = Manu Rigi type AMORTISSEMENT L1
(MOTS UY UZ RY RZ) PAfu;
*
*--- Raideur due a l'ecoulement
PKfu =
(Prog (-6./(5.*Lpout)) 0. 0. -1.1 (6./(5.*Lpout)) 0. 0.
-.1);
PKfu = PKfu et
(Prog 0. (-6./(5.*Lpout)) 1.1 0. 0. (6./(5.*Lpout)) .1
0.);
PKfu = PKfu et
(Prog 0. .1 (-2.*Lpout/15.) 0. 0. -.1 (Lpout/30.) 0. );
PKfu = PKfu et
(Prog -.1 0. 0. (-2.*Lpout/15.) .1 0. 0. (Lpout/30.) );
PKfu = PKfu et
(Prog (6./(5.*Lpout)) 0. 0. .1 (-6./(5.*Lpout)) 0. 0.
1.1);
PKfu = PKfu et
(Prog 0. (6./(5.*Lpout)) -.1 0. 0. (-6./(5.*Lpout))
-1.1 0. );
PKfu =
PKfu et (Prog 0. .1 (Lpout/30.) 0. 0. -.1
(-2.*Lpout/15.) 0. );
PKfu = PKfu et
(Prog -.1 0. 0. (Lpout/30.) .1 0. 0. (-2.*Lpout/15.) );
Kfu = Manu Rigi type RIGIDITE L1 (MOTS UY UZ RY RZ)
PKfu;
*
*
*****************************************
* 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;
Si (Affich);
Mess ' ';
Mess 'Fluide a l arret';
Mess ' Mode Frequence ';
Mess '---------------------------';
Repeter LMod Nbmod;
i=&LMod;
Mess ' ' i ' ' Basm.i.'FREQUENCE';
Fin LMod;
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 amortissement
Afp = (PJBA Afu Basr);
*--- Matrices de raideur
Ksp = (PJBA Kstru Basr);
Kfp = (PJBA Kfu Basr);
*
*--- Reperage de la vitesse critique
VSauv = 'N';
* ===================================== *
* Boucle sur la vitesse axiale *
* ===================================== *
*
Repeter Bloc10 (DIME LVa);
k=&Bloc10;
Va = Extr LVa k;
Si (AFFICH);
Mess 'Iteration' k;
Mess 'Vitesse axiale : ' Va ;
Mess ' ';
Mess '----------------------------------------------------------------
--------------';
Mess ' Mode Frequence Amort. P. Reelle P. Imaginaire
Stabilité ';
Finsi;
*
******************************************
* Masses, rigidites ... *
******************************************
*
*---- Amortissement
At = (2*Mfaj*Va*Afp);
*---- Rigidite
Kt = (Ksp) et ((Mfaj*Va*Va)*Kfp);
*
******************************************
* 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 = Va - (PVa/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 '0');
*
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 Lva (Mod.Reel.k);
Titr 'Frequences (partie imaginaire)';
Evol2 = Evol BLAN manu Lva (Mod.Imag.k);
Titr 'Lambda (partie reelle)';
*--- Traces relatifs a lambda = i 2 Pi f
Evol3 = Evol BLAN manu Lva (-2.*PI*(Mod.Imag.k));
Titr 'Lambda (partie imaginaire)';
Evol4 = Evol BLAN manu Lva (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 Lva (Mod.Reel.k));
Titr 'Frequences (partie imaginaire)';
Evol2 = Evol2 et (Evol BLAN manu Lva (Mod.Imag.k));
Titr 'Lambda (partie reelle)';
Evol3 = Evol3 et (Evol BLAN manu Lva
(-2.*PI*(Mod.Imag.k)));
Titr 'Lambda (partie imaginaire)';
Evol4 = Evol4 et (Evol BLAN manu Lva
(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. 150. YBOR 0. 70. Lege
Titx 'Vax (m/s)'
Tity 'Re(F) (Hz)' Tab1;
Dess Evol2 Lege
Titx 'Vax (m/s)'
Tity 'Im(F) (Hz)' Tab1;
Dess Evol3 XBOR 0. 150. YBOR -150. 150. Lege
Titx 'Vax (m/s)'
Tity 'Re(i2.PI.F)' Tab1;
Dess Evol4 XBOR 0. 150. YBOR 0. 450. Lege
Titx 'Vax (m/s)'
Tity 'Im(i2.PI.F)' Tab1;
Dess Evol5 XBOR 0. 500. YBOR -150. 150. Lege
Titx 'Re(i2.PI.F)'
Tity 'Im(i2.PI.F)' Tab1;
Finsi;
*
**********************************
* Test de bon fonctionnement *
**********************************
*
Vth = (Pi/Lstru)*((Youstru*Pi*(R**4)/(4*mfaj))**0.5);
*Mess 'Erreur : ' (Abs((Vcrit-Vth)/Vth));
*Opti donn 5;
Si (Abs((Vcrit-25.)/25.) < 0.05);
Erre 0;
Sinon;
Erre 5;
Finsi;
*
FIN;
Test vibr6 Comments
Afu = Manu Rigi type AMORTISSEMENT L1 (MOTS UY UZ RY RZ) PAfu;
Kfu = Manu Rigi type RIGIDITE L1 (MOTS UY UZ RY RZ) PKfu;
The operator MANU followed by RIGI keyword creates a RIGIDITE subtype object in which all elementary stiffness matrices are similar :
- the elementary matrix is given by a list of reals (PAfu and PKfu),
- the geometrical object is given by L1,
- the type of stiffness is specified (AMORTISSEMENT and RIGIDITE),
- the name of the components for each node of L1 is given by a list of words (MOTS UY UZ RY RZ).
In this case, each elementary matrix is defined by a 8X8 matrix : 2 x (UY UZ RY RZ).
* Mass matrix
Mt = (PJBA MStru Basr);
** Damping matrices
Afp = (PJBA Afu Basr);
** Rigidity matrices
Ksp = (PJBA Kstru Basr);
Kfp = (PJBA Kfu Basr);
The PJBA operator calculates the projection of stiffness objects (MStru, Afu, Kstru and Kfu) on an eigen mode basis (Basr).
Basc = VIBC Mt Kt At;
Basm = Basc.'MODES';
...
Modn = Basm.i;
Prf = Prf et (Prog Modn.'FREQUENCE_REELLE');
Pif = Pif et (Prog Modn.'FREQUENCE_IMAGINAIRE');
VIBC computes the complex eigen values and eigen vectors of the general equation :
.
The mass (Mt), stiffness (Kt) and damping (At) are given in matrices previously expressed relatively to a real eigen mode basis. If these matrices have not their subtypes corresponding with MASSE, RIGIDITE and AMORTISSEMENT, the input order is very important because they can't be sorted: they then are processed in order of their input.
The generated object is a BASE_MODALE subtype table (Basc).
Basc.'MODES' is a BASE_DE_MODES subtype table (Basm).
Basm.i is a MODE_COMPLEXE subtype table (Modn) :
Modn.'FREQUENCE_REELLE' : real part of the eigen frequency.
Modn.'FREQUENCE_IMAGINAIRE' : imaginary part of the eigen frequency.
Modn.'NUMERO_MODE' : number of the mode.
Modn.'DEFORMEE_MODALE_REELLE' : real part of the eigen vector.
Modn.'DEFORMEE_MODALE_IMAGINAIRE' : imaginary part of the eigen vector.
Dess Evol1 XBOR 0. 150. YBOR 0. 70. Lege
Titx 'Vax (m/s)' Tity 'Re(F) (Hz)' Tab1;
The XBOR and YBOR keywords impose boundaries on X-axis (mini 0. and maxi 150.) and on Y-axis (mini 0. and maxi 70.).
The LEGE keyword imposes a caption for the different plotted curves. It imposes a square frame and the maximal number of curves is nine.
The TITX and TITY keywords allow to modify the names of abscissas and ordinates.