Télécharger vibr6.dgibi

Retour à la liste

Numérotation des lignes :

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

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