* 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