Télécharger dyna14.dgibi

Retour à la liste

Numérotation des lignes :

  1. * fichier : dyna14.dgibi
  2. ************************************************************************
  3. ************************************************************************
  4. ************************************************************************
  5. *
  6. * Mots-clés : Vibrations, calcul modal, sous-structuration,
  7. * Craigh-Brampton, dynamique
  8.  
  9. * TEST POUR LA SOUS-STRUCTURATION SANS UTILISATION DE BASE
  10. * Etude d'un ASSEMBLAGE DE 2 PLAQUES
  11. * Creation : D. COMBESCURE 30/09/2005
  12. * Modif : B Prabel, 12/09/2014 : + sous-structuration libre-libre
  13. *
  14. ************************************************************************
  15. *
  16. *GRAPH = VRAI; OPTI TRAC PSC EPTR 5 POTR HELVETICA_16;
  17. GRAPH = FAUX;
  18. *
  19. opti dime 2 elem qua4 mode plan defo;
  20. OPTI EPSI LINEAIRE;
  21.  
  22.  
  23. ************************************************************************
  24. * Maillage
  25. ************************************************************************
  26.  
  27. nele = 1;
  28. q0 = 0. 0. ; vz = 0. 1;
  29. q1 = 5. 0. ; q2 = 10. 0. ;
  30. q1b = q1 plus (0. 0.);
  31. q3 = q0 plus vz;
  32. q4 = q1 plus vz;
  33. q5 = q2 plus vz;
  34. q4b = q4 plus (0. 0.);
  35. lig1 = d (5*nele) q0 q1 ;
  36. sur1 = tran nele lig1 vz;
  37. ligi0 = d nele q0 q3;
  38. ligi1 = d nele q1 q4;
  39. elim 0.0001 (lig1 et sur1 et ligi1 et ligi0);
  40.  
  41. lig2 = d (5*nele) q1b q2 ;
  42. sur2 = coul (tran nele lig2 vz) rouge;
  43. ligi1b = d nele q1b q4b;
  44. ligi2 = d nele q2 q5;
  45. elim 0.0001 (lig2 et sur2 et ligi2 et ligi1b);
  46.  
  47. surtot = sur1 et sur2;
  48. si (GRAPH);
  49. trac (surtot) 'TITRE' 'Maillage 1 (noir) et 2 (rouge)';
  50. finsi;
  51.  
  52.  
  53. ************************************************************************
  54. * Modèles et matrices
  55. ************************************************************************
  56.  
  57. * Plaque 1
  58. *
  59. MO1 = MODE SUR1 'MECANIQUE' 'ELASTIQUE' 'QUA4' ;
  60. MATE1 = MATE MO1 'YOUNG' 2.E5 'NU' 0.3 'RHO' 7.800D-3;
  61. RIGPL1 = RIGI MATE1 MO1 ;
  62. MASPL1 = MASS MATE1 MO1 ;
  63. BLOQ1 = BLOQ 'DEPL' ligi0;
  64. RIGPLA1= RIGPL1 et BLOQ1 ;
  65. *bp SPLA1 = STRU RIGPLA1 MASPL1;
  66. Meshi1 = ligi1;
  67. BLOQ1L = (BLOQ 'UX' Meshi1) et (BLOQ 'UY' Meshi1);
  68. *
  69. * Plaque 2
  70. *
  71. MO2 = MODE SUR2 'MECANIQUE' 'ELASTIQUE' 'QUA4' ;
  72. MATE2 = MATE MO2 'YOUNG' 2.E5 'NU' 0.3 'RHO' 7.80d-3;
  73. RIGPL2 = RIGI MATE2 MO2 ;
  74. MASPL2 = MASS MATE2 MO2 ;
  75. BLOQ2 = BLOQ DEPL ligi2;
  76. Meshi2 = ligi1b;
  77. BLOQ2L =(BLOQ UX Meshi2) et (BLOQ UY Meshi2);
  78. RIGPLA2 = RIGPL2 et BLOQ2 ;
  79.  
  80. * Liaison inter-plaque
  81. LIUX = RELA 'UX' Meshi1 - 'UX' Meshi2 ;
  82. LIUY= RELA 'UY' Meshi1 - 'UY' Meshi2;
  83. ENCL = (LIUX et LIUY);
  84.  
  85.  
  86. ************************************************************************
  87. * Calcul du système complet sans sous-structuration
  88. ************************************************************************
  89.  
  90. * calcul des modes
  91. nmodo = 4;
  92. SOLREF = VIBR 'PROCH' (PROG 0.) (lect nmodo)
  93. (RIGPLA2 et RIGPLA1 et ENCL) (MASPL2 et MASPL1) ;
  94.  
  95. * calcul de la reponse forcee harmonique
  96. ptF = sur2 poin PROCH (q1b plus (0.4*(q2 moins q1b)));
  97. F1 = FORC 'FY' 1. ptF;
  98. OMEGA = 50.;
  99. KDYN = (RIGPLA2 et RIGPLA1 et ENCL)
  100. et ( -1.*((2.*pi*OMEGA)**2) * (MASPL2 et MASPL1));
  101. UDYN = RESO KDYN F1;
  102. UY1ref = EXTR UDYN 'UY' q1;
  103. si GRAPH;
  104. trac (vect F1 1. 'FORC' 'VERT') surtot;
  105. finsi;
  106.  
  107.  
  108. ************************************************************************
  109. * Methode de sous-structuration de Craigh brampton
  110. ************************************************************************
  111.  
  112. ********* Etape 1 : calcul des modes propres et statiques *********
  113.  
  114. * mode propre Plaque 1 (= modes propres "bloqués")
  115. *
  116. nmod1 = 1;
  117. MODPLA1 = VIBR 'PROCH' (prog 0.) (lect nmod1)
  118. (RIGPLA1 et BLOQ1L) MASPL1 ;
  119.  
  120. i = 0;
  121. repe Bmod1 nmod1; i = i + 1 ;
  122. def1 = MODPLA1 . 'MODES' . i . 'DEFORMEE_MODALE';
  123. frq1 = MODPLA1 . 'MODES' . i . 'FREQUENCE';
  124. mm1 = MODPLA1 . 'MODES' . i . 'MASSE_GENERALISEE';
  125. cha1 = chai 'Plaque 1 : Mode bloqué ' i ' - f= ' frq1 ' - m=' mm1;
  126. MESS cha1;
  127. si (GRAPH); trac (defo sur1 def1) 'TITRE' cha1; finsi;
  128. fin Bmod1;
  129.  
  130. * mode propre Plaque 2 (= modes propres "bloqués")
  131. *
  132. nmod2 = 1;
  133. MODPLA2 = VIBR 'PROCH' (prog 0.) (lect nmod2)
  134. (RIGPLA2 et BLOQ2L) MASPL2 ;
  135. *
  136. i = 0;
  137. repe Bmod2 nmod2; i = i + 1 ;
  138. def2 = MODPLA2 . 'MODES' . i . 'DEFORMEE_MODALE';
  139. frq2 = MODPLA2 . 'MODES' . i . 'FREQUENCE';
  140. mm2 = MODPLA2 . 'MODES' . i . 'MASSE_GENERALISEE';
  141. cha2 = chai 'Plaque 2 : Mode bloqué ' i ' - f= ' frq2 ' - m=' mm2;
  142. MESS cha2;
  143. si (GRAPH); trac (defo sur2 def2) 'TITRE' cha2; finsi;
  144. fin Bmod2;
  145.  
  146. * modes statiques Plaque 1 (on impose u=1 sur chaque ddl)
  147.  
  148. * creation de la table LIAISONS_STATIQUES
  149. tblsta1 = IDLI BLOQ1L Meshi1;
  150. * creation des blocages de chaque ddl individuellement
  151. bliaiq1 = BLOQ tblsta1 ;
  152. * creation du 2nd membre associé à chaque blocage
  153. DEPI tblsta1;
  154. * resolution (statique) de chaque pb lineaire a deplacement imposé
  155. RESO (RIGPLA1 et bliaiq1) tblsta1;
  156. * calcul de chaque force de reaction
  157. REAC bliaiq1 tblsta1;
  158.  
  159. nstat1 = ((dime tblsta1) - 1);
  160. i = 0;
  161. repe Bstat1 nstat1; i = i + 1;
  162. motinc = tblsta1 . i . 'DDL_LIAISON' ;
  163. notinc = noeu tblsta1 . i . 'POINT_LIAISON' ;
  164. ptrep1 = tblsta1 . i . 'POINT_REPERE' ;
  165. defsta1= tblsta1. i . 'DEFORMEE';
  166. cha1 = chai 'Mode statique ' i ' - ddl :'motinc ' #'notinc
  167. ' ->' (noeu ptrep1);
  168. mess cha1;
  169. si (GRAPH); trac (defo (surtot) defsta1) 'TITRE' cha1; finsi;
  170. fin Bstat1;
  171.  
  172. * modes statiques Plaque 2 (on impose u=1 sur chaque ddl)
  173.  
  174. * creation de la table LIAISONS_STATIQUES
  175. tblsta2 = IDLI BLOQ2L Meshi2;
  176. * creation des blocages de chaque ddl individuellement
  177. bliaiq2 = BLOQ tblsta2 ;
  178. * creation du 2nd membre associé à chaque blocage
  179. DEPI tblsta2;
  180. * resolution (statique) de chaque pb lineaire a deplacement imposé
  181. RESO (RIGPLA2 et bliaiq2) tblsta2;
  182. * calcul de chaque force de reaction
  183. REAC bliaiq2 tblsta2;
  184.  
  185. nstat2 = ((dime tblsta2) - 1);
  186. i = 0;
  187. repe Bstat2 nstat2; i = i + 1;
  188. motinc = tblsta2 . i . 'DDL_LIAISON' ;
  189. notinc = noeu tblsta2 . i . 'POINT_LIAISON' ;
  190. ptrep2 = tblsta2 . i . 'POINT_REPERE' ;
  191. defsta2= tblsta2. i . 'DEFORMEE';
  192. cha2 = chai 'Mode statique ' i ' - ddl :'motinc ' #'notinc
  193. ' ->' (noeu ptrep2);
  194. mess cha2;
  195. si (GRAPH); trac (defo (surtot) defsta2) 'TITRE' cha2; finsi;
  196. fin Bstat2;
  197.  
  198.  
  199. ********* Etape 2 : calcul des matrices projetees *********
  200.  
  201. * calcul direct via les operateur RIGI et MASS
  202. rigtot1 = rigi tblsta1 modpla1;
  203. mastot1 = mass tblsta1 modpla1 MASPL1;
  204. rigtot2 = rigi tblsta2 modpla2;
  205. mastot2 = mass tblsta2 modpla2 MASPL2;
  206.  
  207. * on peut aussi passer par PJBA (plus couteux mais plus general)
  208. rigtot1p = PJBA RIGPL1 tblsta1 modpla1;
  209. mastot1p = PJBA MASPL1 tblsta1 modpla1;
  210. rigtot2p = PJBA RIGPL2 tblsta2 modpla2;
  211. mastot2p = PJBA MASPL2 tblsta2 modpla2;
  212.  
  213. * projection de la liaison 1-2 : seul les modes statiques sont non-nuls
  214. ENCLP = PJBA ENCL (tblsta1 et tblsta2);
  215.  
  216. * assemblage
  217. RIGMO = rigtot1 et rigtot2 et ENCLP;
  218. MASMO = mastot1 et mastot2;
  219.  
  220.  
  221. ****** Etape 3 : calcul sur système complet sur base réduite *******
  222. *
  223. * calcul des modes
  224. SOL_SS = VIBR 'PROCH' (PROG 0.1) (lect nmodo) RIGMO MASMO ;
  225.  
  226. * calcul de la reponse forcee harmonique
  227. F1_SS = PJBA F1 modpla2 tblsta2;
  228. KDYNSS = RIGMO et ( -1.*((2.*pi*OMEGA)**2) * MASMO);
  229. UDYNSS = RESO KDYNSS F1_SS;
  230. UDYNSS = RECO UDYNSS (modpla1 et modpla2) (tblsta1 et tblsta2);
  231. UY1_ss = EXTR UDYNSS 'UY' q1;
  232.  
  233.  
  234.  
  235. ************************************************************************
  236. * Methode de sous-structuration libre-libre
  237. ************************************************************************
  238.  
  239. * mode propre Plaque 1 (= modes propres "libres")
  240. *
  241. nmod1 = 4;
  242. MODPLL1 = VIBR 'PROCH' (prog 0.) (lect nmod1)
  243. (RIGPLA1) MASPL1 ;
  244.  
  245. * mode propre Plaque 2 (= modes propres "libres")
  246. *
  247. nmod2 = 4;
  248. MODPLL2 = VIBR 'PROCH' (prog 0.) (lect nmod2)
  249. (RIGPLA2) MASPL2 ;
  250.  
  251. * reunion des 2 bases
  252. MODPLL = MODPLL1 et MODPLL2;
  253. *
  254. i = 0;
  255. repe Bmod (nmod1 + nmod2); i = i + 1 ;
  256. def = MODPLL . 'MODES' . i . 'DEFORMEE_MODALE';
  257. frq = MODPLL . 'MODES' . i . 'FREQUENCE';
  258. mm = MODPLL . 'MODES' . i . 'MASSE_GENERALISEE';
  259. cha = chai ' Mode libre ' i ' - f= ' frq ' - m=' mm;
  260. MESS cha;
  261. si (GRAPH); trac (defo surtot def) 'TITRE' cha; finsi;
  262. fin Bmod;
  263.  
  264.  
  265. * equation de liaison projetee sur la base libre
  266. ENCLL = PJBA ENCL MODPLL;
  267. RIGLL = PJBA (RIGPLA1 et RIGPLA2) MODPLL;
  268. MASLL = PJBA (MASPL1 et MASPL2 ) MODPLL;
  269.  
  270. * calcul des modes du système complet
  271. * SOL_LL = VIBR 'PROCH' (PROG 0.1) (lect nmodo)
  272. SOL_LL = VIBR 'SIMUL' 0.1 nmodo
  273. (RIGLL et ENCLL) MASLL ;
  274.  
  275. * calcul de la reponse forcee harmonique
  276. * F1_LL = PJBA F1 MODPLL;
  277. F1_LL = PJBA F1 MODPLL2;
  278. KDYNLL = RIGLL et ENCLL et ( -1.*((2.*pi*OMEGA)**2) * MASLL);
  279. UDYNLL = RESO KDYNLL F1_LL;
  280. UDYNLL = RECO UDYNLL MODPLL;
  281. UY1_ll = EXTR UDYNLL 'UY' q1;
  282.  
  283.  
  284.  
  285. ************************************************************************
  286. * Comparaison des resultats obtenus avec diverses methodes
  287. ************************************************************************
  288.  
  289. * calcul des modes
  290.  
  291. MESS ' Mode | Reference | Craigh-Brampton | Libre-Libre';
  292. i = 0;
  293. REPE BMODO nmodo; i = i + 1 ;
  294.  
  295.  
  296. fr1ref = SOLREF . 'MODES' . i . 'FREQUENCE';
  297. fr1_ss = SOL_SS . 'MODES' . i . 'FREQUENCE';
  298. fr1_ll = SOL_LL . 'MODES' . i . 'FREQUENCE';
  299. MESS i fr1ref fr1_ss fr1_ll;
  300.  
  301. si (GRAPH);
  302. def0 = SOLREF. 'MODES' . i . 'DEFORMEE_MODALE';
  303. trac (defo (surtot) def0)
  304. 'TITRE' (chai 'mode 'i 'f=' fr1ref);
  305. def1 = reco (SOL_SS. 'MODES' . i . 'DEFORMEE_MODALE') tblsta1 modpla1;
  306. def2 = reco (SOL_SS. 'MODES' . i . 'DEFORMEE_MODALE') tblsta2 modpla2;
  307. def1 = exco def1 (mots UX UY) NATURE DIFFUS;
  308. def2 = exco def2 (mots UX UY) NATURE DIFFUS;
  309. trac (defo (surtot) (def1 et def2))
  310. 'TITRE' (chai 'mode 'i 'f=' fr1_ss);
  311. defLL = reco (SOL_LL . 'MODES' . i . 'DEFORMEE_MODALE') MODPLL;
  312. trac (defo (surtot) defLL);
  313. finsi;
  314. *
  315. fin BMODO;
  316.  
  317. * calcul de la reponse forcee harmonique
  318. si GRAPH;
  319. amp = 2000.;
  320. trac ((defo UDYN amp surtot 'DEFA')
  321. et (defo UDYNSS amp surtot 'BLEU')
  322. et (defo UDYNLL amp surtot 'ROSE'));
  323. finsi;
  324. mess UY1ref UY1_ss UY1_LL;
  325.  
  326.  
  327. ************************************************************************
  328. * Test de Non Regression
  329. ************************************************************************
  330.  
  331. fr1ref = SOLREF . 'MODES' . 1 . 'FREQUENCE';
  332. fr1_ss = SOL_SS . 'MODES' . 1 . 'FREQUENCE';
  333. fr1_ll = SOL_LL . 'MODES' . 1 . 'FREQUENCE';
  334. erel1 = abs ((fr1_ss - fr1ref)/fr1ref);
  335. erel2 = abs ((fr1_ll - fr1ref)/fr1ref);
  336. erel3 = abs ((UY1_ss - UY1ref) / UY1ref);
  337. erel4 = abs ((UY1_LL - UY1ref) / UY1ref);
  338.  
  339. mess 'Erreur relative Craigh Brampton = ' erel1 erel3;
  340. mess 'Erreur relative libre-libre = ' erel2 erel4;
  341.  
  342. * les resultats obtenus par la methode libre-libre sont assez mauvais
  343. * dans ce cas de figure --> grande tolerance sur les valeurs testees
  344.  
  345. SI ((erel1 < 0.01) et (erel2 < 0.20)
  346. et (erel3 < 0.01) et (erel4 < 0.50));
  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.  
  370.  
  371.  
  372.  
  373.  
  374.  

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