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

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