Télécharger vibr7.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : vibr7.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. *
  5. **********************************************************************
  6. * *
  7. * Mots-clés : Vibrations, calcul modal, modes complexes, *
  8. * interaction fluide-structure, tuyau, 3D *
  9. * *
  10. * TEST : VIBR7 *
  11. * *
  12. * Modele de CONNORS - BLEVINS *
  13. * *
  14. * Calcul des modes propres complexes d'un arbre *
  15. * soumis a un ecoulement exterieur transverse permanent *
  16. * Conditions aux limites : articule - articule *
  17. * *
  18. **********************************************************************
  19. *
  20. Opti Echo 1;
  21. Opti Dime 3 Elem Seg2;
  22.  
  23. * pour calcul complet mettre complet à : vrai;
  24. complet = faux;
  25. *
  26. *--- Affichage
  27. AFFICH = VRAI;
  28. GRAPH = 'N';
  29. IMPRPS = FAUX;
  30. *
  31. *Si (NON AFFICH);
  32. * Opti Echo 1;
  33. *Finsi;
  34. Si (IMPRPS);
  35. Opti Trac ps;
  36. Finsi;
  37. ************************************
  38. * Caracteristiques du systeme *
  39. ************************************
  40. *--- Materiau
  41. Rhostru = 4000.;
  42. Youstru = 1.E10;
  43. Nustru = 0.;
  44. *--- Longueur du crayon
  45. Lstru = 2.;
  46. *--- Rayon du crayon
  47. R = 10.E-3;
  48. *--- Section du crayon
  49. Sstru = PI*R*R;
  50. *--- Masse lineique du crayon
  51. Ms = Rhostru*Sstru;
  52. *--- Amortissement structural
  53. Dzeta =1.E-2;
  54. *--- Masse volumique du fluide
  55. Rhof = 1000.;
  56. *--- Masse ajoutee du fluide (fluide non confine)
  57. Mfaj = Rhof*PI*R*R;
  58. *--- Masse volumique equivalente
  59. Rhoe = (Ms+Mfaj)/Sstru;
  60. *--- Constante d'instabilite
  61. K = 3.;
  62. *--- Vitesse transverse du fluide
  63. Vmin = 0.;
  64. Vmax = 1.;
  65. si complet;
  66. PVt = .01;
  67. sinon;
  68. pvt = .05;
  69. finsi;
  70. *
  71. LVt = Prog Vmin PAS PVt Vmax;
  72. *
  73. **************************************
  74. * Maillage du systeme *
  75. **************************************
  76. *
  77. NbN = 100;
  78. Mess 'Nombre d elements :' 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. * Analyse modale *
  106. *****************************************
  107. *
  108. PMod = Prog 2.77 11.1 24.99 44.43 69.42;
  109. Basr = VIBR PROCH PMod Kstru Mstru ;
  110. Basr.'MODES' = nnor (Basr.'MODES') (mots 'UZ');
  111. *
  112. Basm = Basr.'MODES';
  113. Nbmod = DIME Basm-2;
  114. *--- Liste des vitesses critiques, des masses generalisees et des pulsations
  115. LVc = Prog;
  116. LM = Prog ;
  117. LW = Prog ;
  118. Si (Affich);
  119. Mess ' ';
  120. Mess 'Fluide a l arret';
  121. Mess ' Mode Frequence ';
  122. Mess '---------------------------';
  123. Finsi;
  124. Repeter LMod Nbmod;
  125. i=&LMod;
  126. f = Basm.i.'FREQUENCE';
  127. mi = Basm.i.'MASSE_GENERALISEE';
  128. Si (Affich);
  129. Mess ' ' i ' ' f;
  130. Finsi;
  131. LW = LW et (Prog (2*PI*f));
  132. LVc = LVc et (Prog ( K*((2*PI*mi*f*f*Dzeta*2/(Lstru*Rhof))**0.5)) );
  133. LM = LM et (Prog mi);
  134. Fin LMod;
  135. * --- Constitution du maillage support pour l'amortissement
  136. LPt = Basm.1 .'POINT_REPERE';
  137. Repeter LPoint (Nbmod-1);
  138. i=&LPoint + 1;
  139. pti = Basm.i.'POINT_REPERE';
  140. LPt = LPt et pti;
  141. Fin LPoint;
  142. Mail = Manu 'SUPE' LPt;
  143. *
  144. Si (Affich);
  145. Mess ' ';
  146. Mess ' ';
  147. Mess ' ';
  148. Finsi;
  149. *
  150. *****************************************
  151. * Mise en forme du tableau de resultats *
  152. *****************************************
  153. *
  154. Mod = Table;
  155. Mod.Reel = Table;
  156. Mod.Imag = Table;
  157. Repeter Bloc6 (2*Nbmod);
  158. i=&Bloc6;
  159. Mod.Reel.i=Prog;
  160. Mod.Imag.i=Prog;
  161. Fin Bloc6;
  162. *
  163. *****************************************
  164. * Projection des matrices *
  165. *****************************************
  166. *
  167. *--- Matrice masse
  168. Mt = (PJBA MStru Basr);
  169. *--- Matrices de raideur
  170. Kt = (PJBA Kstru Basr);
  171. *
  172. *--- Reperage de la vitesse critique
  173. VSauv = 'N';
  174. *
  175. * ========================================= *
  176. * Boucle sur la vitesse transverse *
  177. * ========================================= *
  178. *
  179. Repeter Bloc10 (DIME LVt);
  180. k=&Bloc10;
  181. Vt = Extr LVt k;
  182. Si (AFFICH);
  183. Mess 'Iteration' k;
  184. Mess 'Vitesse transverse : ' Vt ;
  185. Mess ' ';
  186. Mess '---------------------------------------------------------------- --------------';
  187. Mess ' Mode Frequence Amort. P. Reelle P. Imaginaire Stabilité ';
  188. Finsi;
  189. *
  190. *
  191. *****************************************
  192. * Masses, rigidites ... *
  193. ******************************************
  194. *
  195. *---- Amortissement
  196. LDzeta = Prog;
  197. Repeter Bamor Nbmod;
  198. k = &Bamor;
  199. Vck = Extr LVc k;
  200. Mk = Extr LM k;
  201. Wk = Extr LW k;
  202. Ak = 2*Mk*Wk*Dzeta*(1-((Vt/Vck)**2));
  203. LDzeta = LDzeta et (Prog Ak);
  204. Si (Neg k Nbmod);
  205. LDzeta = LDzeta et (Prog Nbmod*0.);
  206. Finsi;
  207. Fin Bamor;
  208. At = Manu Rigi type AMORTISSEMENT Mail (MOTS 'ALFA') DUAL (MOTS 'FALF') LDzeta;
  209. *
  210. ******************************************
  211. * Calcul des modes complexes *
  212. ******************************************
  213. *
  214. Basc = VIBC Mt Kt At;
  215. Basm = Basc.'MODES';
  216. *
  217. *--- Extraction des frequences
  218. Prf = Prog;
  219. Pif = Prog;
  220. Repeter Bloc2 (2*Nbmod);
  221. i=&Bloc2;
  222. Modn = Basm.i;
  223. f = Modn.'FREQUENCE_REELLE';
  224. * Si (>EG f 0.);
  225. Prf = Prf et (Prog Modn.'FREQUENCE_REELLE');
  226. Pif = Pif et (Prog Modn.'FREQUENCE_IMAGINAIRE');
  227. * Finsi;
  228. Fin bloc2;
  229. *
  230. *--- Tri croissant des frequences
  231. n1 = DIME Prf;
  232. Prfc = Prog (extr Prf 1);
  233. Pifc = Prog (extr Pif 1);
  234. Repeter Bloc3 (n1-1);
  235. i=&Bloc3+1;
  236. f = extr Prf i;
  237. n2 = DIME Prfc;
  238. Pos = 1;
  239. Repeter Bloc4 n2;
  240. j = &Bloc4;
  241. f1 = extr Prfc j;
  242. Si (> f f1);
  243. Pos = Pos + 1;
  244. Finsi;
  245. Fin Bloc4;
  246. Prfc = INSE Prfc Pos f;
  247. Pifc = INSE Pifc Pos (extr Pif i);
  248. Fin Bloc3;
  249. *--- Sauvegarde
  250. Repeter Bloc5 n1;
  251. i=&Bloc5;
  252. f = (Extr Prfc i);
  253. if = (Extr Pifc i);
  254. Si (AFFICH);
  255. Msg = 'STAB.';
  256. Si ((< if -1.D-10) et (>EG f 0.));
  257. Msg = 'INST.';
  258. Si (EGA VSauv 'N');
  259. Vcrit = Vt - (PVt/2.);
  260. VSauv = 'O';
  261. Finsi;
  262. Finsi;
  263. Si (> f 0.);
  264. * Valeurs propres relatives a lambda = i omega = ix2PIxf
  265. Mess i f (if/f) (-2*PI*if) (2*PI*f) Msg;
  266. Sinon;
  267. Si (EGA f 0.);
  268. Mess i f ' ----- ' (-2*PI*if) (2*PI*f) Msg;
  269. Finsi;
  270. Finsi;
  271. Finsi;
  272. Mod.Reel.i = Mod.Reel.i et (Prog f);
  273. Mod.Imag.i = Mod.Imag.i et (Prog if);
  274. Fin Bloc5;
  275. Si (AFFICH);
  276. Mess '---------------------------------------------------------------- --------------';
  277. Mess ' ';
  278. Finsi;
  279. *
  280. Fin Bloc10;
  281. *
  282. **********************************
  283. * Traces *
  284. **********************************
  285. *
  286. *
  287. Si (EGA GRAPH 'O');
  288. *
  289. Nbcour = 2*NbMod;
  290. *
  291. *
  292. Tab1 = Table;
  293. Repeter Ident1 Nbcour;
  294. k=&Ident1;
  295. Tab1.k = 'NOLI';
  296. Fin Ident1;
  297. *
  298. k= 1;
  299. *--- Traces relatifs a la frequence
  300. Titr 'Frequences (partie reelle)';
  301. Evol1 = Evol BLAN manu Lvt (Mod.Reel.k);
  302. Titr 'Frequences (partie imaginaire)';
  303. Evol2 = Evol BLAN manu Lvt (Mod.Imag.k);
  304. *--- Traces relatifs a lambda = i omega = ix2PIxf
  305. Titr 'Lambda partie reelle)';
  306. Evol3 = Evol BLAN manu Lvt (-2.*PI*(Mod.Imag.k));
  307. Titr 'Lambda (partie imaginaire)';
  308. Evol4 = Evol BLAN manu Lvt (2*PI*(Mod.Reel.k));
  309. Titr 'Lambda (partie reelle / partie imaginaire)';
  310. Evol5 = Evol BLAN manu (2.*PI*(Mod.Reel.k)) (-2.*PI*(Mod.Imag.k));
  311. Repeter Trac1 (Nbcour-1);
  312. k=&Trac1+1;
  313. Si (> (DIME Mod.Reel.k) 0);
  314. Titr 'Frequences (partie reelle)';
  315. Evol1 = Evol1 et (Evol BLAN manu Lvt (Mod.Reel.k));
  316. Titr 'Frequences (partie imaginaire)';
  317. Evol2 = Evol2 et (Evol BLAN manu Lvt (Mod.Imag.k));
  318. Titr 'Lambda (partie reelle)';
  319. Evol3 = Evol3 et (Evol BLAN manu Lvt (-2.*PI*(Mod.Imag.k)));
  320. Titr 'Lambda (partie imaginaire)';
  321. Evol4 = Evol4 et (Evol BLAN manu Lvt (2.*PI*(Mod.Reel.k)));
  322. Titr 'Lambda (partie reelle / partie imaginaire)';
  323. Evol5 = Evol5 et (Evol BLAN manu (2.*PI*(Mod.Reel.k)) (-2.*PI*(Mod.Imag.k)));
  324. Finsi;
  325. Fin Trac1;
  326. *
  327. Dess Evol1 XBOR 0. 1.20 YBOR 0. 70. Lege Titx 'Vtr (m/s)' Tity 'Re(F) (Hz)' Tab1;
  328. Dess Evol2 Lege Titx 'Vtr (m/s)' Tity 'Im(F) (Hz)' Tab1;
  329. Dess Evol3 XBOR 0. 1.20 YBOR -10. 50. Lege Titx 'Vtr (m/s)' Tity 'Re(i.2.PI.F)' Tab1;
  330. Dess Evol4 XBOR 0. 1.20 YBOR 0. 450. Lege Titx 'Vtr (m/s)' Tity 'Im(i.2.PI.F)' Tab1;
  331. Dess Evol5 XBOR 0. 500. YBOR -10. 50. Lege Titx 'Re(i.2.PI.F)' Tity 'Im(i.2.PI.F)' Tab1;
  332. Finsi;
  333. *
  334. *************************************
  335. * Test de bon fonctionnement *
  336. *************************************
  337. *
  338. Vcrit1 = Extr LVc 1;
  339. *Mess 'Erreur : ' (Abs(Vcrit-Vcrit1)/Vcrit1);
  340. *opti donn 5;
  341. si complet ;
  342. erma = 0.05;
  343. sinon;
  344. erma = 0.1;
  345. finsi;
  346. Si ((Abs(Vcrit-Vcrit1)/Vcrit1) < erma);
  347. Erre 0;
  348. Sinon;
  349. Erre 5;
  350. Finsi;
  351. *
  352. FIN;
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  

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