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

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