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

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