Télécharger vibr12.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : vibr12.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4.  
  5. ************************************************************************
  6. * *
  7. * Mots-cles : Vibrations, calcul modal, modes complexes, *
  8. * interaction fluide-structure, instabilite *
  9. * *
  10. * TEST : VIBR12 *
  11. * *
  12. * CALCUL D INSTABILITE FLUIDE-ELASTIQUE SOUS ECOULEMENT AXIAL CONFINE *
  13. * 2 CONFIGURATIONS : ENCASTRE-LIBRE ou AA *
  14. * *
  15. * Ref : GIBERT Page 409-410 *
  16. * GREGORY, PAIDOUSSIS, 1966, "Unstable oscillation of tubular *
  17. * cantilevers conveying fluid " *
  18. * *
  19. * ^ Z *
  20. * -> | *
  21. * -> V +--------------------+--------------------+ --> X *
  22. * -> P0 P2 *
  23. * *
  24. * *
  25. ************************************************************************
  26.  
  27. ************************************
  28. * OPTIONS *
  29. ************************************
  30. OPTI DIME 3 ELEM SEG2 ;
  31.  
  32. * Conditions limites : 'EL' ou 'AA'
  33. CL = mot 'AA' ;
  34. CL = mot 'EL' ;
  35. prefix = CHAI 'vibr12-' CL;
  36.  
  37. * traces
  38. * GRAPH = VRAI ;
  39. * OPTI TRAC PSC EPTR 10 POTR 'HELVETICA_16' 'FTRA' (CHAI prefix'.ps');
  40. GRAPH = FAUX ;
  41. OPTI TRAC PSC EPTR 10 POTR 'HELVETICA_16' 'FTRA' (CHAI prefix'.ps');
  42.  
  43.  
  44.  
  45. ************************************
  46. * Caracteristiques du systeme *
  47. ************************************
  48.  
  49. *--- Materiau Acier
  50. Rho_A = 8100. ;
  51. You_A = 2.0e11 ;
  52. Nu_A = 0.3 ;
  53.  
  54. *--- Longueurs : Longueur Tube = 2L
  55. L = .5 ;
  56.  
  57. *--- Diametre int. Tube
  58. Di = 10.0e-3 ;
  59.  
  60. *--- Rapport Beta = Mf / (Mf+ms)
  61. Beta = 0.2 ;
  62.  
  63. *--- choix d'une methode de calcul pour :
  64. * | Rhof : Masse volumique fluide
  65. * | De : diametre externe
  66. * sachant que : | ms = Mf * (1-Beta) / Beta
  67. * | (De^2-Di^2) = Rhof*Di^2/Rhos * (1-Beta)/Beta
  68. Meth = 1 ;
  69. SI (EGA Meth 1) ;
  70. * On calcul le Diametre externe De pour respecter le rapport Beta
  71. * a masse volumique fluide fixe
  72. Rhof = 1000. ;
  73. De2 = ( (((Rhof/Rho_A) * ( (1-Beta) / Beta ) )) + 1 ) * (Di*Di) ;
  74. De = De2**0.5 ;
  75. SINON ;
  76. * On calcul Rhof pour respecter Beta ;
  77. * a diametre exterieur fixe
  78. De = 12e-3 ;
  79. Rhof = (((( (De*De) - (Di*Di)) / ((1-Beta)/Beta) ) ) / (Di*Di) ) *Rho_A ;
  80. FINSI ;
  81.  
  82. *--- Epaisseur du tube
  83. Ep = (De - Di) / 2 ;
  84.  
  85. Mess 'Di=' Di ' De=' De 'Rhof=' Rhof ;
  86.  
  87. *--- Section Tube
  88. S_T = (pi/4)*((De**2)-(Di**2)) ;
  89.  
  90. *--- Moments quadratiques
  91. Ie_T= (pi/64)*((De**4)-(Di**4)) ;
  92.  
  93. *--- Masse ajoutee lineique interne
  94. S_I = (pi/4.0)*(Di**2) ;
  95. Me = Rhof*S_I ;
  96. Rho_eq = Me/S_T ;
  97.  
  98. * Nbre de modes reels et amortissement modaux en % (cf operateur AMOR)
  99. Nbmod = 4 ;
  100. L_AMOR = PROG Nbmod * 0.0 ;
  101.  
  102. * Facteurs pour adimensionner [Gibert,p.408] :
  103. * V : VR = RVR*V
  104. * w : OMEG = Rw*w
  105. RVR = (2.0*L) * (( ((Rho_A*S_T) + Me) / (You_A*Ie_T) )**0.5) ;
  106. Rw = (2.0*L)* RVR ;
  107. * Autre adimensionnement [Axisa,Paidoussis]
  108. si (ega CL 'EL');
  109. RVR = (2.0*L) * (( Me / (You_A*Ie_T) )**0.5) ;
  110. finsi;
  111.  
  112. * Juste pour verif
  113. Beta_c= Rhof*S_I / ((Rhof*S_I) + (Rho_A*S_T)) ;
  114.  
  115. *--- Vitesse axial du fluide
  116. pas_VR = .1 ;
  117. VRmax = 12. ;
  118. VRmin = 0. ;
  119. LVR = PROG VRmin PAS pas_VR VRmax ;
  120. LVa = (1.0 * LVR ) / RVR ;
  121.  
  122. mess ' Rho A Rho_eq Beta Beta_c Rw RVr De' ;
  123. mess ' ' Rho_A ' ' Rho_eq ' ' Beta ' ' Beta_c ' ' Rw ' ' RVR ' ' De;
  124.  
  125.  
  126. **************************************
  127. * Maillage du systeme *
  128. **************************************
  129.  
  130. P0 = (-1.0*L) 0. 0. ;
  131. P2 = P0 PLUS ((2.0*L) 0. 0.) ;
  132.  
  133. * Lfin : longueur objectif d'1 element
  134. * L1 : longueur reelle
  135. *Lfin = 0.001 ;
  136. Lfin = 0.0025 ;
  137. nL = ENTI 'PROCHE' (2.0*L / Lfin);
  138. Tube = P0 DROI nL P2 ;
  139. * Longueur reelle des elements
  140. * L1 = (MESURE Tube) / nL ;
  141. L1 = 2.0*L / nL;
  142.  
  143. **************************************
  144. * Modele et Materiau *
  145. **************************************
  146.  
  147. Modl1 = MODE Tube MECANIQUE ELASTIQUE ISOTROPE 'TUYA' ;
  148. Matr1 = MATE Modl1 'YOUN' You_A 'NU' Nu_A 'RHO' (Rho_A + Rho_eq) 'EPAI' Ep 'RAYO' (De/2);
  149.  
  150.  
  151. **************************************
  152. * Masses, Rigidites ... du systeme *
  153. **************************************
  154.  
  155. Mstru = MASS Modl1 Matr1 ;
  156. Kstru = RIGI Modl1 Matr1 ;
  157.  
  158. *--- Conditions aux limites : Probleme plan EL ou EA
  159. Cl1 = BLOQ 'UX' Tube ;
  160. Cl2 = BLOQ 'UY' Tube ;
  161. Cl3 = BLOQ 'RX' Tube ;
  162. Cl4 = BLOQ 'RZ' Tube ;
  163. * EL : Encastre-Libre
  164. SI (EGA CL 'EL') ;
  165. Cl5 = BLOQ 'RY' P0 ;
  166. SINON ;
  167. * AA : Appuye-Appuye
  168. SI (EGA CL 'AA') ;
  169. Cl5 = BLOQ 'UZ' P2 ;
  170. SINON ;
  171. MESS 'CL doit etre AA ou EL !';
  172. ERRE 21;
  173. FINSI ;
  174. FINSI ;
  175. Cl6 = BLOQ 'UZ' P0 ;
  176. Kstru = Kstru ET Cl1 ET Cl2 ET Cl3 ET Cl4 ET CL5 ET CL6 ;
  177.  
  178.  
  179. *****************************************
  180. * Analyse modale *
  181. *****************************************
  182.  
  183. *Basr = VIBR 'PROC' (PROG 1.) (LECT Nbmod) Kstru Mstru ;
  184. Basr = VIBR 'IRAM' 1. Nbmod Kstru Mstru ;
  185. Basr.'MODES' = NNOR (Basr.'MODES') (MOTS 'UZ') ;
  186. Basrm = Basr.'MODES' ;
  187.  
  188. OPTI OEIL (0.0 -1000.0 0.0) ;
  189. POSTVIBR Basr ;
  190.  
  191.  
  192. ***********************************
  193. * Rigidites suplementaires *
  194. ***********************************
  195.  
  196. PAfu1 = (PROG -.5 0. 0. (L1/10.) .5 0. 0. (-1*L1/10.)) ;
  197. PAfu2 = (PROG 0. -.5 (-1*L1/10.) 0. 0. .5 (L1/10.) 0.) ;
  198. PAfu3 = (PROG 0. (L1/10.) 0. 0. 0. (-1*L1/10.) (-1*L1*L1/60.) 0.) ;
  199. PAfu4 = (PROG (-1*L1/10.) 0. 0. 0. (L1/10.) 0. 0. (-1*L1*L1/60.)) ;
  200. PAfu5 = (PROG -.5 0. 0. (-1*L1/10.) .5 0. 0. (L1/10.)) ;
  201. PAfu6 = (PROG 0. -.5 (L1/10.) 0. 0. .5 (-1*L1/10.) 0.) ;
  202. PAfu7 = (PROG 0. (-1*L1/10.) (L1*L1/60.) 0. 0. (L1/10.) 0. 0.) ;
  203. PAfu8 = (PROG (L1/10.) 0. 0. (L1*L1/60.) (-1*L1/10.) 0. 0. 0.) ;
  204. PAfu = PAfu1 ET PAfu2 ET PAfu3 ET PAfu4 ET PAfu5 ET PAfu6 ET PAfu7 ET PAfu8 ;
  205. Afu = MANU 'RIGI' 'TYPE' 'AMORTISSEMENT'
  206. Tube (MOTS 'UY' 'UZ' 'RY' 'RZ') 'QUEL' PAfu ;
  207.  
  208. PKfu1 = (PROG (-6./(5.*L1)) 0. 0. -1.1 (6./(5.*L1)) 0. 0. -.1) ;
  209. PKfu2 = (PROG 0. (-6./(5.*L1)) 1.1 0. 0. (6./(5.*L1)) .1 0.) ;
  210. PKfu3 = (PROG 0. .1 (-2.*L1/15.) 0. 0. -.1 (L1/30.) 0.) ;
  211. PKfu4 = (PROG -.1 0. 0. (-2.*L1/15.) .1 0. 0. (L1/30.)) ;
  212. PKfu5 = (PROG (6./(5.*L1)) 0. 0. .1 (-6./(5.*L1)) 0. 0. 1.1) ;
  213. PKfu6 = (PROG 0. (6./(5.*L1)) -.1 0. 0. (-6./(5.*L1)) -1.1 0.) ;
  214. PKfu7 = (PROG 0. .1 (L1/30.) 0. 0. -.1 (-2.*L1/15.) 0.) ;
  215. PKfu8 = (PROG -.1 0. 0. (L1/30.) .1 0. 0. (-2.*L1/15.)) ;
  216. PKfu = PKfu1 ET PKfu2 ET PKfu3 ET PKfu4 ET PKfu5 ET PKfu6 ET PKfu7 ET PKfu8 ;
  217. Kfu = MANU 'RIGI' 'TYPE' 'RIGIDITE'
  218. Tube (MOTS 'UY' 'UZ' 'RY' 'RZ') 'QUEL' PKfu ;
  219.  
  220.  
  221. list 'RESUME' Afu;
  222. list 'RESUME' Kfu;
  223.  
  224.  
  225. *****************************************
  226. * Mise en forme du tableau de resultats *
  227. *****************************************
  228.  
  229. Mod = TABLE ;
  230. Mod.Reel = TABLE ;
  231. Mod.Imag = TABLE ;
  232. Repeter Bloc6 (2*Nbmod) ;
  233. i = &Bloc6 ;
  234. Mod.Reel.i = PROG ;
  235. Mod.Imag.i = PROG ;
  236. Fin Bloc6 ;
  237.  
  238. *****************************************
  239. * Projection des matrices *
  240. *****************************************
  241.  
  242. *--- Struture Mt,Ksp
  243. Mt = PJBA MStru Basr ;
  244. Ksp = PJBA Kstru Basr ;
  245. *--- Amortissement modale Ct
  246. Ct = AMOR Basr L_AMOR ;
  247.  
  248. *--- Matrice amortissement due a l ecoulement
  249. * a multiplier par 2MV pour Afp et MV² pour Kfp
  250. Afp = PJBA Afu Basr ;
  251. Kfp = PJBA Kfu Basr ;
  252.  
  253. NbModC = 2*Nbmod;
  254. mocomp = MOTS 'ALFA';
  255. numodC = LECT 1 'PAS' 1 NbModC;
  256.  
  257. * ===================================== *
  258. * Boucle sur la vitesse axiale *
  259. * ===================================== *
  260. REPE b_Vax (DIME LVa) ;
  261. k = &b_Vax ;
  262. Va= Extr LVa k ;
  263. Vr= Extr LVR k ;
  264.  
  265. Mess ' ' ;
  266. Mess '#' k ': Vitesse axiale =' Va ' Vitesse reduite =' Vr ;
  267. Mess '-------------------------------------------------------------------------------' ;
  268. Mess ' Mode fn_d Amort. P. Reeln1 P. Imag. Stabilite ' ;
  269.  
  270. * Matrices fluides totale : Amortissement et Raideur
  271. At = Ct ET ((2.*Me*Va)*Afp) ;
  272. Kt = Ksp ET (Me*Va*Va*Kfp);
  273.  
  274. * Calcul des modes complexes
  275. Basc = VIBC Mt Kt At ;
  276. Bascm = Basc . 'MODES' ;
  277.  
  278. *--- Extraction des frequences
  279. Prf = PROG ;
  280. Pif = PROG ;
  281. REPE Bloc2 NbModC ;
  282. i = &Bloc2 ;
  283. Modn = Bascm.i ;
  284. Prf = Prf ET (PROG Modn.'FREQUENCE_REELLE') ;
  285. Pif = Pif ET (PROG Modn.'FREQUENCE_IMAGINAIRE') ;
  286. FIN bloc2 ;
  287.  
  288. *--- Tri croissant des frequences
  289. * NbModC = DIME Prf ;
  290. * Prfc Pifc numodC = ORDO Prf Pif numodC0;
  291. * ou plutot suivi des modes (auteur : Benoit Prabel)
  292. si (ega k 1);
  293. * 1er pas : on ordonne par fr croissant
  294. Prfc Pifc numodCc = ORDO Prf Pif numodC;
  295. Bascmc = COPI Bascm;
  296. repe b0 NbModC;
  297. Bascmc . &b0 = Bascm . (extr numodCc &b0);
  298. fin b0;
  299. sinon;
  300. xcou01 = prog;
  301. * boucle sur les modes du pas precedent --------------------
  302. repe b0 NbModC;
  303. DEFR0 = Bascm0 . &b0 . 'DEFORMEE_MODALE_REELLE';
  304. DEFI0 = Bascm0 . &b0 . 'DEFORMEE_MODALE_IMAGINAIRE';
  305. frqR0 = Bascm0 . &b0 . 'FREQUENCE_REELLE';
  306. frqI0 = Bascm0 . &b0 . 'FREQUENCE_IMAGINAIRE';
  307. * boucle sur les modes du pas actuel ----------------
  308. repe b1 NbModC;
  309. DEFR1 = Bascm . &b1 . 'DEFORMEE_MODALE_REELLE';
  310. DEFI1 = Bascm . &b1 . 'DEFORMEE_MODALE_IMAGINAIRE';
  311. frqR1 = Bascm . &b1 . 'FREQUENCE_REELLE';
  312. frqI1 = Bascm . &b1 . 'FREQUENCE_IMAGINAIRE';
  313. * ecart en frequence^2
  314. dfrq1 = ((frqR1 - frqR0)**2) + ((frqI1 - frqI0)**2);
  315. ref1 = ((frqR1**2) + (frqI1**2)) + ((frqR0**2) + (frqI0**2));
  316. * produit scalaire des vecteurs propres
  317. cos1 = (XTY DEFR1 DEFR0 mocomp mocomp)
  318. + (XTY DEFI1 DEFI0 mocomp mocomp);
  319. sin1 = (XTY DEFI1 DEFR0 mocomp mocomp)
  320. - (XTY DEFR1 DEFI0 mocomp mocomp);
  321. modul1 = (cos1**2) + (sin1**2);
  322. xsuiv1 = (abs (1. - modul1)) + (0.5*dfrq1 / ref1);
  323. xcou01 = xcou01 et xsuiv1;
  324. fin b1;
  325. * fin de boucle sur les modes du pas actuel ---------
  326. fin b0;
  327. * fin de boucle sur les modes du pas precedent -------------
  328. * SUIVI = apprairage
  329. * = minimisation du cout (cad des distances) par permutation
  330. couttot numodCc Prfc Pifc
  331. = ORDO numodC Prf Pif 'COUT' xcou01 ;
  332. * on modifie la base modale
  333. Bascmc = COPI Bascm;
  334. repe b0 NbModC;
  335. Bascmc . &b0 = Bascm . (extr numodCc &b0);
  336. fin b0;
  337. finsi;
  338. * pour le prochain pas
  339. Bascm0 = Bascmc;
  340.  
  341. *--- Sauvegarde
  342. REPE Bloc5 NbModC ; i = &Bloc5 ;
  343. f = EXTR Prfc i ;
  344. if = EXTR Pifc i ;
  345.  
  346. Msg = 'STAB.' ;
  347. SI ((< if -1.D-10) ET (>EG f 0.) ET (f < 1e-5 )) ;
  348. Msg = 'INST.' ;
  349. SI (EGA VSauv 'N') ;
  350. Vcrit = Va_CO - (p_fin/2.) ;
  351. VSauv = 'O' ;
  352. MESS 'bipbip' ;
  353. FINSI ;
  354. FINSI ;
  355.  
  356. SI (> f 0.) ;
  357. *--- Valeurs propres relatives a lambda = i*omega = i*2*PI*f
  358. MESS i f (if/f) (-2*PI*if) (2*PI*f) Msg (((f**2) + (if**2))**0.5) (if/(((f**2) + (if**2))**0.5));
  359. SINON ;
  360. SI (EGA f 0.) ;
  361. MESS i f ' ------ ' ' ' (-2*PI*if) (2*PI*f) Msg (((f**2) + (if**2))**0.5) (if/(((f**2) + (if**2))**0.5)) ;
  362. FINSI ;
  363. FINSI ;
  364. Mod.Reel.i = Mod.Reel.i ET f ;
  365. Mod.Imag.i = Mod.Imag.i ET if ;
  366.  
  367. FIN Bloc5 ;
  368.  
  369. SI GRAPH ;
  370. MESS '-------------------------------------------------------------------------------' ;
  371. MESS ' ' ;
  372. FINSI ;
  373. FIN b_Vax ;
  374. *
  375. SAUTER 2 LIGNES ;
  376.  
  377. **********************************
  378. * Traces *
  379. **********************************
  380. * 4*2 couleurs
  381. numero = LECT Nbmod 'PAS' -1 1 1 'PAS' 1 Nbmod;
  382. coco4 = MOTS 'ROUG' 'ORAN' 'TURQ' 'BLEU' ;
  383. Nbcour = 2*Nbmod ;
  384. Tab1 = TABLE ;
  385. Tab2 = TABLE ;
  386. REPE Ident1 Nbcour ;
  387. * Tab1 . &Ident1 = 'NOLI MARQ S PLEIN TRIU' ;
  388. Tab1 . &Ident1 = 'NOLI MARQ S PLUS' ;
  389. Tab2 . &Ident1 = 'MARQ S PLUS' ;
  390. FIN Ident1 ;
  391.  
  392. *--- Traces relatifs a la frequence
  393. Evol1 = VIDE 'EVOLUTIO';
  394. Evol2 = VIDE 'EVOLUTIO';
  395. *--- Traces relatifs a OMEGA
  396. Evol3 = VIDE 'EVOLUTIO';
  397. Evol4 = VIDE 'EVOLUTIO';
  398. Evol5 = VIDE 'EVOLUTIO';
  399. * --- Boucle sur les modes
  400. REPE Trac1 Nbcour ;
  401. k = &Trac1 ;
  402. numk = EXTR numero k;
  403. si (k &lt;EG Nbmod); legek = CHAI 'Mode' ' ' numk;
  404. sinon; legek = MOT 'PAS DE LEGENDE';
  405. finsi;
  406. cocok = EXTR coco4 numk;
  407. SI (> (DIME Mod.Reel.k) 0) ;
  408. Evol1 = Evol1 ET (EVOL cocok MANU 'LEGE' legek
  409. 'V_{r}' LVR 'Re(f) (Hz)' (Mod.Reel.k)) ;
  410. Evol2 = Evol2 ET (EVOL cocok MANU 'LEGE' legek
  411. 'V_{r}' LVR 'Im(f) (/s)' (Mod.Imag.k)) ;
  412. Evol3 = Evol3 ET (EVOL cocok MANU 'LEGE' legek
  413. 'V_{r}' LVR 'Re(w)' (2.*PI*(Rw*Mod.Reel.k))) ;
  414. Evol4 = Evol4 ET (EVOL cocok MANU 'LEGE' legek
  415. 'V_{r}' LVR 'Im(w)' (2.*PI*Rw*(Mod.Imag.k))) ;
  416. Evol5 = Evol5 ET (EVOL cocok MANU 'LEGE' legek
  417. 'Re(w)' (2.*PI*Rw*(Mod.Reel.k)) 'Im(w)' (2.*PI*Rw*(Mod.Imag.k))) ;
  418. SINON;
  419. MESS 'Mode' k 'vide !';
  420. FINSI ;
  421. FIN Trac1 ;
  422.  
  423. SI GRAPH;
  424.  
  425. * avec legende
  426. DESS Evol1 'GRILL' 'GRIS' Tab2 'LEGE';
  427. * sans/avec zoom
  428. TITR 'Vitesse reduite - Frequences (partie reelle)' ;
  429. DESS Evol1 'GRILL' 'GRIS' Tab1 ;
  430. DESS Evol1 'XBOR' 0. 12. XGRA 1. 'YBOR' 0. 120. YGRA 10 'GRILL' 'GRIS' Tab1 ;
  431.  
  432. TITR 'Vitesse reduite - Frequences (partie imaginaire)' ;
  433. DESS Evol2 'GRILL' 'GRIS' Tab1 ;
  434. DESS Evol2 'XBOR' 0. 12. XGRA 1. 'YBOR' -0. 10. YGRA 1. 'GRILL' 'GRIS' Tab1 ;
  435.  
  436. TITR 'Frequences (partie reelle - partie imaginaire)' ;
  437. DESS Evol5 'GRILL' 'GRIS' Tab1 ;
  438. DESS Evol5 'XBOR' 0. 70. XGRA 10. 'YBOR' 0. 20. YGRA 2. 'GRILL' 'GRIS' Tab1 ;
  439. FINSI ;
  440.  
  441.  
  442.  
  443. *** TEST A PREVOIR ***
  444.  
  445.  
  446.  
  447. FIN ;
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales