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
  86. Epai R Rayo R;
  87. *
  88. **************************************
  89. * Masses, Rigidites ... du systeme *
  90. **************************************
  91. *
  92. *--- Masse
  93. Mstru = Masse Modl1 Matr1;
  94. *--- Raideur structrale
  95. Kstru = Rigi Modl1 Matr1;
  96. *--- Conditions aux limites : Probleme plan
  97. Cl1 = Bloq Ux L1;
  98. Cl2 = Bloq Uy L1;
  99. Cl3 = Bloq Rx L1;
  100. Cl4 = Bloq Rz L1;
  101. Cl5 = Bloq Uz (PA et PB);
  102. *
  103. Kstru = Kstru et Cl1 et Cl2 et Cl3 et Cl4 et CL5;
  104. *
  105. ***********************************
  106. * Rigidites supplementaires *
  107. ***********************************
  108. *
  109. Lpout = Lstru/NbN;
  110. *
  111. *--- Amortissement du a l'écoulement
  112. PAfu =
  113. (Prog -.5 0. 0. (Lpout/10.) .5 0. 0. (-1.*Lpout/10.) );
  114. PAfu = PAfu et
  115. (Prog 0. -.5 (-1.*Lpout/10.) 0. 0. .5 (Lpout/10.) 0.);
  116. PAfu = PAfu et
  117. (Prog 0. (Lpout/10.) 0. 0. 0. (-1.*Lpout/10.)
  118. (-1.*Lpout*Lpout/60.) 0.);
  119. PAfu = PAfu et
  120. (Prog (-1.*Lpout/10.) 0. 0. 0. (Lpout/10.) 0. 0.
  121. (-1.*Lpout*Lpout/60.));
  122. PAfu = PAfu et
  123. (Prog -.5 0. 0. (-1.*Lpout/10.) .5 0. 0. (Lpout/10.) );
  124. PAfu = PAfu et
  125. (Prog 0. -.5 (Lpout/10.) 0. 0. .5 (-1.*Lpout/10.) 0. );
  126. PAfu = PAfu et
  127. (Prog 0. (-1.*Lpout/10.) (Lpout*Lpout/60.) 0. 0.
  128. (Lpout/10.) 0. 0. );
  129. PAfu = PAfu et
  130. (Prog (Lpout/10.) 0. 0. (Lpout*Lpout/60.)
  131. (-1.*Lpout/10.) 0. 0. 0. );
  132. Afu = Manu Rigi type AMORTISSEMENT L1
  133. (MOTS UY UZ RY RZ) PAfu;
  134. *
  135. *--- Raideur due a l'ecoulement
  136. PKfu =
  137. (Prog (-6./(5.*Lpout)) 0. 0. -1.1 (6./(5.*Lpout)) 0. 0.
  138. -.1);
  139. PKfu = PKfu et
  140. (Prog 0. (-6./(5.*Lpout)) 1.1 0. 0. (6./(5.*Lpout)) .1
  141. 0.);
  142. PKfu = PKfu et
  143. (Prog 0. .1 (-2.*Lpout/15.) 0. 0. -.1 (Lpout/30.) 0. );
  144. PKfu = PKfu et
  145. (Prog -.1 0. 0. (-2.*Lpout/15.) .1 0. 0. (Lpout/30.) );
  146. PKfu = PKfu et
  147. (Prog (6./(5.*Lpout)) 0. 0. .1 (-6./(5.*Lpout)) 0. 0.
  148. 1.1);
  149. PKfu = PKfu et
  150. (Prog 0. (6./(5.*Lpout)) -.1 0. 0. (-6./(5.*Lpout))
  151. -1.1 0. );
  152. PKfu =
  153. PKfu et (Prog 0. .1 (Lpout/30.) 0. 0. -.1
  154. (-2.*Lpout/15.) 0. );
  155. PKfu = PKfu et
  156. (Prog -.1 0. 0. (Lpout/30.) .1 0. 0. (-2.*Lpout/15.) );
  157. Kfu = Manu Rigi type RIGIDITE L1 (MOTS UY UZ RY RZ)
  158. PKfu;
  159. *
  160. *
  161. *****************************************
  162. * Analyse modale *
  163. *****************************************
  164. *
  165. PMod = Prog 2.77 11.1 24.99 44.43 69.42;
  166. Basr = VIBR PROCH PMod Kstru Mstru ;
  167. nnor (Basr.'MODES') (mots 'UZ');
  168. *
  169. Basm = Basr.'MODES';
  170. Nbmod = DIME Basm-2;
  171. SI (NEG GRAPH 'N');
  172. Mess ' ';
  173. Mess 'Fluide a l arret';
  174. Mess ' Mode Frequence ';
  175. Mess '---------------------------';
  176. Repeter LMod Nbmod;
  177. i=&LMod;
  178. Mess ' ' i ' ' Basm.i.'FREQUENCE';
  179. Fin LMod;
  180. Mess ' ';
  181. Mess ' ';
  182. Mess ' ';
  183. Finsi;
  184. *
  185. *****************************************
  186. * Mise en forme du tableau de resultats *
  187. *****************************************
  188. *
  189. Mod = Table;
  190. Mod.Reel = Table;
  191. Mod.Imag = Table;
  192. Repeter Bloc6 (2*Nbmod);
  193. i=&Bloc6;
  194. Mod.Reel.i=Prog;
  195. Mod.Imag.i=Prog;
  196. Fin Bloc6;
  197. *
  198. *****************************************
  199. * Projection des matrices *
  200. *****************************************
  201. *
  202. *--- Matrice masse
  203. Mt = (PJBA MStru Basr);
  204. *--- Matrices amortissement
  205. Afp = (PJBA Afu Basr);
  206. *--- Matrices de raideur
  207. Ksp = (PJBA Kstru Basr);
  208. Kfp = (PJBA Kfu Basr);
  209. *
  210. *--- Reperage de la vitesse critique
  211. VSauv = 'N';
  212. * ===================================== *
  213. * Boucle sur la vitesse axiale *
  214. * ===================================== *
  215. *
  216. Repeter Bloc10 (DIME LVa);
  217. k=&Bloc10;
  218. Va = Extr LVa k;
  219. SI (NEG GRAPH 'N');
  220. Mess 'Iteration' k;
  221. Mess 'Vitesse axiale : ' Va ;
  222. Mess ' ';
  223. Mess '----------------------------------------------------------------
  224. --------------';
  225. Mess ' Mode Frequence Amort. P. Reelle P. Imaginaire
  226. Stabilité ';
  227. Finsi;
  228. *
  229. ******************************************
  230. * Masses, rigidites ... *
  231. ******************************************
  232. *
  233. *---- Amortissement
  234. At = (2*Mfaj*Va*Afp);
  235. *---- Rigidite
  236. Kt = (Ksp) et ((Mfaj*Va*Va)*Kfp);
  237. *
  238. ******************************************
  239. * Calcul des modes complexes *
  240. ******************************************
  241. *
  242. Basc = VIBC Mt Kt At;
  243. Basm = Basc.'MODES';
  244. *
  245. *--- Extraction des frequences
  246. Prf = Prog;
  247. Pif = Prog;
  248. Repeter Bloc2 (2*Nbmod);
  249. i=&Bloc2;
  250. Modn = Basm.i;
  251. f = Modn.'FREQUENCE_REELLE';
  252. * Si (>EG f 0.);
  253. Prf = Prf et (Prog Modn.'FREQUENCE_REELLE');
  254. Pif = Pif et (Prog Modn.'FREQUENCE_IMAGINAIRE');
  255. * Finsi;
  256. Fin bloc2;
  257. *
  258. *--- Tri croissant des frequences
  259. n1 = DIME Prf;
  260. Prfc = Prog (extr Prf 1);
  261. Pifc = Prog (extr Pif 1);
  262. Repeter Bloc3 (n1-1);
  263. i=&Bloc3+1;
  264. f = extr Prf i;
  265. n2 = DIME Prfc;
  266. Pos = 1;
  267. Repeter Bloc4 n2;
  268. j = &Bloc4;
  269. f1 = extr Prfc j;
  270. Si (> f f1);
  271. Pos = Pos + 1;
  272. Finsi;
  273. Fin Bloc4;
  274. Prfc = INSE Prfc Pos f;
  275. Pifc = INSE Pifc Pos (extr Pif i);
  276. Fin Bloc3;
  277. *--- Sauvegarde
  278. Repeter Bloc5 n1;
  279. i=&Bloc5;
  280. f = (Extr Prfc i);
  281. if = (Extr Pifc i);
  282.  
  283. Msg = 'STAB.';
  284. Si ((< if -1.D-10) et (>EG f 0.) et (f < 1e-5 ) );
  285. Msg = 'INST.';
  286. Si (EGA VSauv 'N');
  287. Vcrit = Va - (PVa/2.);
  288. VSauv = 'O';
  289. Finsi;
  290. Finsi;
  291. Si (> f 0.);
  292. *--- Valeurs propres relatives a lambda = i omega = ix2PIxf
  293. Mess i f (if/f) (-2*PI*if) (2*PI*f) Msg;
  294. Sinon;
  295. Si (EGA f 0.);
  296. Mess i f
  297. ' ----- ' (-2*PI*if) (2*PI*f) Msg;
  298. Finsi;
  299. Finsi;
  300.  
  301. Mod.Reel.i = Mod.Reel.i et (Prog f);
  302. Mod.Imag.i = Mod.Imag.i et (Prog if);
  303. Fin Bloc5;
  304. SI (NEG GRAPH 'N');
  305. Mess '--------------------------------------------------------------
  306. ----------------';
  307. Mess ' ';
  308. Finsi;
  309. *
  310. Fin Bloc10;
  311. *
  312. **********************************
  313. * Traces *
  314. **********************************
  315. *
  316. *
  317. SI (NEG GRAPH 'N');
  318. *
  319. Nbcour=2*Nbmod;
  320. Tab1 = Table;
  321. Repeter Ident1 Nbcour;
  322. k=&Ident1;
  323. Tab1.k = 'NOLI';
  324. Fin Ident1;
  325. *
  326. k=1;
  327. *--- Traces relatifs a la frequence
  328. Titr 'Frequences (partie reelle)';
  329. Evol1 = Evol BLAN manu Lva (Mod.Reel.k);
  330. Titr 'Frequences (partie imaginaire)';
  331. Evol2 = Evol BLAN manu Lva (Mod.Imag.k);
  332. Titr 'Lambda (partie reelle)';
  333. *--- Traces relatifs a lambda = i 2 Pi f
  334. Evol3 = Evol BLAN manu Lva (-2.*PI*(Mod.Imag.k));
  335. Titr 'Lambda (partie imaginaire)';
  336. Evol4 = Evol BLAN manu Lva (2*PI*(Mod.Reel.k));
  337. Titr 'Lambda (partie reelle / partie imaginaire)';
  338. Evol5 = Evol BLAN manu (2.*PI*(Mod.Reel.k))
  339. (-2.*PI*(Mod.Imag.k));
  340. Repeter Trac1 (Nbcour-1);
  341. k=&Trac1+1;
  342. Si (> (DIME Mod.Reel.k) 0);
  343. Titr 'Frequences (partie reelle)';
  344. Evol1 = Evol1 et (Evol BLAN manu Lva (Mod.Reel.k));
  345. Titr 'Frequences (partie imaginaire)';
  346. Evol2 = Evol2 et (Evol BLAN manu Lva (Mod.Imag.k));
  347. Titr 'Lambda (partie reelle)';
  348. Evol3 = Evol3 et (Evol BLAN manu Lva
  349. (-2.*PI*(Mod.Imag.k)));
  350. Titr 'Lambda (partie imaginaire)';
  351. Evol4 = Evol4 et (Evol BLAN manu Lva
  352. (2.*PI*(Mod.Reel.k)));
  353. Titr 'Lambda (partie reelle / partie imaginaire)';
  354. Evol5 = Evol5 et (Evol BLAN manu
  355. (2.*PI*(Mod.Reel.k)) (-2.*PI*(Mod.Imag.k)));
  356. Finsi;
  357. Fin Trac1;
  358.  
  359. Dess Evol1 XBOR 0. 150. YBOR 0. 70. Lege
  360. Titx 'Vax (m/s)'
  361. Tity 'Re(F) (Hz)' Tab1;
  362. Dess Evol2 Lege
  363. Titx 'Vax (m/s)'
  364. Tity 'Im(F) (Hz)' Tab1;
  365. Dess Evol3 XBOR 0. 150. YBOR -150. 150. Lege
  366. Titx 'Vax (m/s)'
  367. Tity 'Re(i2.PI.F)' Tab1;
  368. Dess Evol4 XBOR 0. 150. YBOR 0. 450. Lege
  369. Titx 'Vax (m/s)'
  370. Tity 'Im(i2.PI.F)' Tab1;
  371. Dess Evol5 XBOR 0. 500. YBOR -150. 150. Lege
  372. Titx 'Re(i2.PI.F)'
  373. Tity 'Im(i2.PI.F)' Tab1;
  374. Finsi;
  375. *
  376. **********************************
  377. * Test de bon fonctionnement *
  378. **********************************
  379. *
  380. Vth = (Pi/Lstru)*((Youstru*Pi*(R**4)/(4*mfaj))**0.5);
  381. *Mess 'Erreur : ' (Abs((Vcrit-Vth)/Vth));
  382. Si (Abs((Vcrit - 25.)/25.) < 0.05);
  383. Erre 0;
  384. Sinon;
  385. Erre 5;
  386. Finsi;
  387. *
  388. FIN;
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  

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