Télécharger vibr6.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : vibr6.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4.  
  5. **********************************************************************
  6. * *
  7. * Mots-clés : Vibrations, calcul modal, modes complexes, *
  8. * interaction fluide-structure, instabilite , tuyau, 3D *
  9. * *
  10. * TEST : VIBR6 *
  11. * *
  12. * Modele de PAIDOUSSIS & ORTOJA-STARZEWSKI *
  13. * *
  14. * On recherche ici les modes propres complexes *
  15. * d'un arbre soumis a un ecoulement *
  16. * Arbre soumis a un ecoulement exterieur axial permanent *
  17. * Conditions aux limites : articule - articule *
  18. * *
  19. **********************************************************************
  20.  
  21. ************************************
  22. * OPTIONS *
  23. ************************************
  24. * SI GRAPH = N PAS DE GRAPHIQUE AFFICHE
  25. GRAPH = 'N' ;
  26. Opti Dime 3 Elem Seg2;
  27.  
  28.  
  29. ************************************
  30. * Caracteristiques du systeme *
  31. ************************************
  32. *--- Materiau
  33. Rhostru = 4000.;
  34. Youstru = 1.E10;
  35. Nustru = 0.;
  36. *--- Longueur du crayon
  37. Lstru = 2.;
  38. *--- Rayon du crayon
  39. R = 10.E-3;
  40. *--- Section du crayon
  41. Sstru = PI*R*R;
  42. *--- Masse lineique du crayon
  43. Mstru = Rhostru*Sstru;
  44. *--- Masse volumique du fluide
  45. Rhof = 1000.;
  46. *--- Masse ajoutee du fluide (fluide non confine)
  47. Mfaj = Rhof*PI*R*R;
  48. *--- Masse volumique equivalente
  49. Rhoe = (Mstru+Mfaj)/Sstru;
  50. *--- Vitesse axiale du fluide
  51. Vmin = 0.;
  52. Vmax = 120.;
  53. PVa = 1.;
  54. *
  55. LVa = Prog Vmin PAS PVa Vmax;
  56. *
  57. **************************************
  58. * Maillage du systeme *
  59. **************************************
  60. *
  61. NbN = 100;
  62. Mess 'Nombre de noeuds :' NbN;
  63. Mess ' ';
  64. PA = (-.5*Lstru) 0. 0.;
  65. PB = (.5*Lstru) 0. 0.;
  66. L1 = Droi NbN PA PB;
  67. *
  68. Modl1 = MODE L1 Mecanique Elastique Isotrope Tuya;
  69. Matr1 = MATE Modl1 Youn Youstru Nu Nustru Rho Rhoe Epai R Rayo R;
  70. *
  71. **************************************
  72. * Masses, Rigidites ... du systeme *
  73. **************************************
  74. *
  75. *--- Masse
  76. Mstru = Masse Modl1 Matr1;
  77. *--- Raideur structrale
  78. Kstru = Rigi Modl1 Matr1;
  79. *--- Conditions aux limites : Probleme plan
  80. Cl1 = Bloq Ux L1;
  81. Cl2 = Bloq Uy L1;
  82. Cl3 = Bloq Rx L1;
  83. Cl4 = Bloq Rz L1;
  84. Cl5 = Bloq Uz (PA et PB);
  85. *
  86. Kstru = Kstru et Cl1 et Cl2 et Cl3 et Cl4 et CL5;
  87. *
  88. ***********************************
  89. * Rigidites supplementaires *
  90. ***********************************
  91. *
  92. Lpout = Lstru/NbN;
  93. *
  94. *--- Amortissement du a l'écoulement
  95. PAfu = (Prog -.5 0. 0. (Lpout/10.) .5 0. 0. (-1.*Lpout/10.) );
  96. PAfu = PAfu et (Prog 0. -.5 (-1.*Lpout/10.) 0. 0. .5 (Lpout/10.) 0.);
  97. PAfu = PAfu et (Prog 0. (Lpout/10.) 0. 0. 0. (-1.*Lpout/10.) (-1.*Lpout*Lpout/60.) 0.);
  98. PAfu = PAfu et (Prog (-1.*Lpout/10.) 0. 0. 0. (Lpout/10.) 0. 0. (-1.*Lpout*Lpout/60.));
  99. PAfu = PAfu et (Prog -.5 0. 0. (-1.*Lpout/10.) .5 0. 0. (Lpout/10.) );
  100. PAfu = PAfu et (Prog 0. -.5 (Lpout/10.) 0. 0. .5 (-1.*Lpout/10.) 0. );
  101. PAfu = PAfu et (Prog 0. (-1.*Lpout/10.) (Lpout*Lpout/60.) 0. 0. (Lpout/10.) 0. 0. );
  102. PAfu = PAfu et (Prog (Lpout/10.) 0. 0. (Lpout*Lpout/60.) (-1.*Lpout/10.) 0. 0. 0. );
  103. Afu = Manu Rigi type AMORTISSEMENT L1 (MOTS UY UZ RY RZ) 'QUEL' PAfu;
  104. *
  105. *--- Raideur due a l'ecoulement
  106. PKfu = (Prog (-6./(5.*Lpout)) 0. 0. -1.1 (6./(5.*Lpout)) 0. 0. -.1);
  107. PKfu = PKfu et (Prog 0. (-6./(5.*Lpout)) 1.1 0. 0. (6./(5.*Lpout)) .1 0.);
  108. PKfu = PKfu et (Prog 0. .1 (-2.*Lpout/15.) 0. 0. -.1 (Lpout/30.) 0. );
  109. PKfu = PKfu et (Prog -.1 0. 0. (-2.*Lpout/15.) .1 0. 0. (Lpout/30.) );
  110. PKfu = PKfu et (Prog (6./(5.*Lpout)) 0. 0. .1 (-6./(5.*Lpout)) 0. 0. 1.1);
  111. PKfu = PKfu et (Prog 0. (6./(5.*Lpout)) -.1 0. 0. (-6./(5.*Lpout)) -1.1 0. );
  112. PKfu = PKfu et (Prog 0. .1 (Lpout/30.) 0. 0. -.1 (-2.*Lpout/15.) 0. );
  113. PKfu = PKfu et (Prog -.1 0. 0. (Lpout/30.) .1 0. 0. (-2.*Lpout/15.) );
  114. Kfu = Manu Rigi type RIGIDITE L1 (MOTS UY UZ RY RZ) 'QUEL' PKfu;
  115. *
  116. *
  117. *****************************************
  118. * Analyse modale *
  119. *****************************************
  120. *
  121. PMod = Prog 2.77 11.1 24.99 44.43 69.42;
  122. Basr = VIBR PROCH PMod Kstru Mstru ;
  123. Basr.'MODES' = nnor (Basr.'MODES') (mots 'UZ');
  124. *
  125. Basm = Basr.'MODES';
  126. Nbmod = DIME Basm-2;
  127. SI (NEG GRAPH 'N');
  128. Mess ' ';
  129. Mess 'Fluide a l arret';
  130. Mess ' Mode Frequence ';
  131. Mess '---------------------------';
  132. Repeter LMod Nbmod;
  133. i=&LMod;
  134. Mess ' ' i ' ' Basm.i.'FREQUENCE';
  135. Fin LMod;
  136. Mess ' ';
  137. Mess ' ';
  138. Mess ' ';
  139. Finsi;
  140. *
  141. *****************************************
  142. * Mise en forme du tableau de resultats *
  143. *****************************************
  144. *
  145. Mod = Table;
  146. Mod.Reel = Table;
  147. Mod.Imag = Table;
  148. Repeter Bloc6 (2*Nbmod);
  149. i=&Bloc6;
  150. Mod.Reel.i=Prog;
  151. Mod.Imag.i=Prog;
  152. Fin Bloc6;
  153. *
  154. *****************************************
  155. * Projection des matrices *
  156. *****************************************
  157. *
  158. *--- Matrice masse
  159. Mt = (PJBA MStru Basr);
  160. *--- Matrices amortissement
  161. Afp = (PJBA Afu Basr);
  162. *--- Matrices de raideur
  163. Ksp = (PJBA Kstru Basr);
  164. Kfp = (PJBA Kfu Basr);
  165. *
  166. *--- Reperage de la vitesse critique
  167. VSauv = 'N';
  168. * ===================================== *
  169. * Boucle sur la vitesse axiale *
  170. * ===================================== *
  171. *
  172. Repeter Bloc10 (DIME LVa);
  173. k=&Bloc10;
  174. Va = Extr LVa k;
  175. SI (NEG GRAPH 'N');
  176. Mess 'Iteration' k;
  177. Mess 'Vitesse axiale : ' Va ;
  178. Mess ' ';
  179. Mess '---------------------------------------------------------------- --------------';
  180. Mess ' Mode Frequence Amort. P. Reelle P. Imaginaire Stabilité ';
  181. Finsi;
  182. *
  183. ******************************************
  184. * Masses, rigidites ... *
  185. ******************************************
  186. *
  187. *---- Amortissement
  188. At = (2*Mfaj*Va*Afp);
  189. *---- Rigidite
  190. Kt = (Ksp) et ((Mfaj*Va*Va)*Kfp);
  191. *
  192. ******************************************
  193. * Calcul des modes complexes *
  194. ******************************************
  195. *
  196. Basc = VIBC Mt Kt At;
  197. Basm = Basc.'MODES';
  198. *
  199. *--- Extraction des frequences
  200. Prf = Prog;
  201. Pif = Prog;
  202. Repeter Bloc2 (2*Nbmod);
  203. i=&Bloc2;
  204. Modn = Basm.i;
  205. f = Modn.'FREQUENCE_REELLE';
  206. * Si (>EG f 0.);
  207. Prf = Prf et (Prog Modn.'FREQUENCE_REELLE');
  208. Pif = Pif et (Prog Modn.'FREQUENCE_IMAGINAIRE');
  209. * Finsi;
  210. Fin bloc2;
  211. *
  212. *--- Tri croissant des frequences
  213. n1 = DIME Prf;
  214. Prfc = Prog (extr Prf 1);
  215. Pifc = Prog (extr Pif 1);
  216. Repeter Bloc3 (n1-1);
  217. i=&Bloc3+1;
  218. f = extr Prf i;
  219. n2 = DIME Prfc;
  220. Pos = 1;
  221. Repeter Bloc4 n2;
  222. j = &Bloc4;
  223. f1 = extr Prfc j;
  224. Si (> f f1);
  225. Pos = Pos + 1;
  226. Finsi;
  227. Fin Bloc4;
  228. Prfc = INSE Prfc Pos f;
  229. Pifc = INSE Pifc Pos (extr Pif i);
  230. Fin Bloc3;
  231. *--- Sauvegarde
  232. Repeter Bloc5 n1;
  233. i=&Bloc5;
  234. f = (Extr Prfc i);
  235. if = (Extr Pifc i);
  236.  
  237. Msg = 'STAB.';
  238. Si ((< if -1.D-10) et (>EG f 0.) et (f < 1e-5 ) );
  239. Msg = 'INST.';
  240. Si (EGA VSauv 'N');
  241. Vcrit = Va - (PVa/2.);
  242. VSauv = 'O';
  243. Finsi;
  244. Finsi;
  245. Si (> f 0.);
  246. *--- Valeurs propres relatives a lambda = i omega = ix2PIxf
  247. Mess i f (if/f) (-2*PI*if) (2*PI*f) Msg;
  248. Sinon;
  249. Si (EGA f 0.);
  250. Mess i f ' ----- ' (-2*PI*if) (2*PI*f) Msg;
  251. Finsi;
  252. Finsi;
  253.  
  254. Mod.Reel.i = Mod.Reel.i et (Prog f);
  255. Mod.Imag.i = Mod.Imag.i et (Prog if);
  256. Fin Bloc5;
  257. SI (NEG GRAPH 'N');
  258. Mess '-------------------------------------------------------------- ----------------';
  259. Mess ' ';
  260. Finsi;
  261. *
  262. Fin Bloc10;
  263. *
  264. **********************************
  265. * Traces *
  266. **********************************
  267. *
  268. *
  269. SI (NEG GRAPH 'N');
  270. *
  271. Nbcour=2*Nbmod;
  272. Tab1 = Table;
  273. Repeter Ident1 Nbcour;
  274. k=&Ident1;
  275. Tab1.k = 'NOLI';
  276. Fin Ident1;
  277. *
  278. k=1;
  279. *--- Traces relatifs a la frequence
  280. Titr 'Frequences (partie reelle)';
  281. Evol1 = Evol BLAN manu Lva (Mod.Reel.k);
  282. Titr 'Frequences (partie imaginaire)';
  283. Evol2 = Evol BLAN manu Lva (Mod.Imag.k);
  284. Titr 'Lambda (partie reelle)';
  285. *--- Traces relatifs a lambda = i 2 Pi f
  286. Evol3 = Evol BLAN manu Lva (-2.*PI*(Mod.Imag.k));
  287. Titr 'Lambda (partie imaginaire)';
  288. Evol4 = Evol BLAN manu Lva (2*PI*(Mod.Reel.k));
  289. Titr 'Lambda (partie reelle / partie imaginaire)';
  290. Evol5 = Evol BLAN manu (2.*PI*(Mod.Reel.k)) (-2.*PI*(Mod.Imag.k));
  291. Repeter Trac1 (Nbcour-1);
  292. k=&Trac1+1;
  293. Si (> (DIME Mod.Reel.k) 0);
  294. Titr 'Frequences (partie reelle)';
  295. Evol1 = Evol1 et (Evol BLAN manu Lva (Mod.Reel.k));
  296. Titr 'Frequences (partie imaginaire)';
  297. Evol2 = Evol2 et (Evol BLAN manu Lva (Mod.Imag.k));
  298. Titr 'Lambda (partie reelle)';
  299. Evol3 = Evol3 et (Evol BLAN manu Lva (-2.*PI*(Mod.Imag.k)));
  300. Titr 'Lambda (partie imaginaire)';
  301. Evol4 = Evol4 et (Evol BLAN manu Lva (2.*PI*(Mod.Reel.k)));
  302. Titr 'Lambda (partie reelle / partie imaginaire)';
  303. Evol5 = Evol5 et (Evol BLAN manu (2.*PI*(Mod.Reel.k)) (-2.*PI*(Mod.Imag.k)));
  304. Finsi;
  305. Fin Trac1;
  306. Dess Evol1 XBOR 0. 150. YBOR 0. 70. Lege Titx 'Vax (m/s)' Tity 'Re(F) (Hz)' Tab1;
  307. Dess Evol2 Lege Titx 'Vax (m/s)' Tity 'Im(F) (Hz)' Tab1;
  308. Dess Evol3 XBOR 0. 150. YBOR -150. 150. Lege Titx 'Vax (m/s)' Tity 'Re(i2.PI.F)' Tab1;
  309. Dess Evol4 XBOR 0. 150. YBOR 0. 450. Lege Titx 'Vax (m/s)' Tity 'Im(i2.PI.F)' Tab1;
  310. Dess Evol5 XBOR 0. 500. YBOR -150. 150. Lege Titx 'Re(i2.PI.F)' Tity 'Im(i2.PI.F)' Tab1;
  311. Finsi;
  312. *
  313. **********************************
  314. * Test de bon fonctionnement *
  315. **********************************
  316. *
  317. Vth = (Pi/Lstru)*((Youstru*Pi*(R**4)/(4*mfaj))**0.5);
  318. *Mess 'Erreur : ' (Abs((Vcrit-Vth)/Vth));
  319. Si (Abs((Vcrit - 25.)/25.) < 0.05);
  320. Erre 0;
  321. Sinon;
  322. Erre 5;
  323. Finsi;
  324. *
  325. FIN;
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  

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